C 中類的定義可以巢狀嗎,c 中函式的定義和呼叫都可以巢狀嗎

時間 2021-08-30 10:38:27

1樓:芃芃

1、類的定義是可以巢狀的

2、在函式中可以定義類,但是意義不大,因為在函式中定義類,你只能在這個函式中使用這個類,其他的函式是沒法用的,所以一般不會把類的定義放在函式中,但是這並沒有錯,能編譯過,也就是說作用域只在函式。

2樓:周德群

不行,在函式中不能定義類,類可以包含函式,但是函式不可能包含類,你也沒見過吧?、

3樓:椎冰

1.可以,你可以作比如

class a

}2,不行,進入函式實現時不能定義類的!

c++定義類時能同時引用該類作為成員函式的變數嗎?

4樓:覃微蘭呂午

類是資料型別,實體是定義該類的物件。

你說的應該是引用該類的物件作為類成員函式的變數,這個是經常使用的。

如通過this指標就可以訪問該類的物件。

5樓:養韋乙光臨

1.可以的,例項可以看一下類的拷貝建構函式。類的拷貝建構函式的形參都是該類的引用變數。

2.可以使用this指標:在類的非靜態成員函式中返回類物件本身的時候,直接使用

return

*this;另外一種情況是當引數與成員變數名相同時,如this->n=n

c++中函式的定義和呼叫都可以巢狀嗎

6樓:好程式設計師

不可以巢狀定義,可以巢狀呼叫。

7樓:sky王者歸來

c++可以用lambda在某種意義上實現函式的巢狀,不過是和直接在函式裡定義函式是不一樣的。12

3456

7int foo(int x, int y);return goo();

}lambda實際上是定義了一個過載()運算子的類,然後例項化的時候把外層函式的區域性變數當成員複製過去。

當然很多支援巢狀函式的語言(學名叫closure)實際上還是這麼幹的。

c++中定義的類,裡面的成員函式可以直接使用嗎?就是在沒有物件的時候。 例如,class裡有一個成 20

8樓:匿名使用者

沒有物件的時候要訪問類成員函式的話,只能訪問靜態成員函式。例如:

class a

}這樣可以在主函式裡直接用

a::abc();

這樣的語句進行呼叫。

9樓:匿名使用者

如果是static函式,可以用類名::abc()來呼叫

如果不是static函式,不可以直接呼叫

10樓:匿名使用者

不可以,唯一的例外是宣告成static 的成員函式可以

11樓:紛採

#include

using namespace std;

class hello

};int main(void)

12樓:匿名使用者

把類名當成名稱空間。

要呼叫的方法,寫成靜態方法,用類名引用。

c++,可以在main函式中定義類嗎,而不是在main函式外?

13樓:weida愛問

1、在主函式外定義類:

class stu;

stu::stu()

main()

此時,類中的函式也是在函式外。

2、在主函式中定義類:

main()

;stu::stu()

stu a;

}希望能幫到您! 望採納!

14樓:匿名使用者

可以。不僅是main函式,所有函式都可以。

不過在函式中定義的類只能在這個函式中被訪問到。而且如果全域性還宣告瞭一個同名的類,在函式中定義的這個類與全域性的類不是同一個類,在函式體範圍內前者會隱藏後者。

樣例:struct s ;

void g() ; //區域性類s隱藏了全域性類}

15樓:匿名使用者

可以在函式內定義類和結構體

但不能在函式內定義函式

請問c++中成員函式在類裡面定義和在類外定義有什麼區別?

16樓:浪跡天涯的流星

效能來說沒啥區別。

不過放在類外,**的定義和實現分開,有利於**封轉,別人需要呼叫你的介面的時候,你可以只給他標頭檔案,**的實現自己留著。

17樓:匿名使用者

在類裡定義時,這種函式會被編譯器編譯成行內函數,在類外定義的函式則不會。行內函數的好處是加快程式的執行速度,缺點是會增加程式的尺寸。比較推薦的寫法是把一個經常要用的而且實現起來比較簡單的小型函式放到類裡去定義,大型函式最好還是放到類外定義。

18樓:壞白闌珊

差多了。作為剛學習c++的人,我提醒一個點,可以去了解一下行內函數。

C 中類的成員函式定義成static與C中的static的函式有什麼不同

曾聽南 類的靜態成員函式不與任何物件相聯絡,它可以直接訪問類的靜態資料成員,而不能直接訪問類的普通資料成員 即非靜態資料成員 因為普通資料成員只有類的物件存在時才有意義。c中的靜態函式只在本檔案中有效。 血天藍海 如果是靜態函式 static 型別 函式名 形參 這樣的函式 它可以被 類名 函式名 ...

c中怎麼定義類,c 中怎麼定義一個類

using system public class desk 基類desk 設定desk的資訊 public void setinfo int len,int wid,int hei 列印desk的引數資訊 public void showinfo t width t height length,w...

c 中在類中定義另只有帶引數建構函式的類的物件,編譯通不過

在b中定義 a a 是可以通過的,但在其他地方 比如函式中 這樣是不對的。在b中定義 a a 只是告訴編譯器 b有一個a類的物件 並不在定義的時候建立a這個物件成員,也就不考慮它的建構函式。a這個物件成員的建立是在執行b的建構函式時進行的,b的建構函式後面必須以初始化表的形式為a物件成員提供引數,比...