2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

Class和Struct的區(qū)別(整理一下)

 風(fēng)雨篤行 2012-04-03

在c++中:

關(guān)于使用大括號(hào)初始化 
class和struct如果定義了構(gòu)造函數(shù)的話,都不能用大括號(hào)進(jìn)行初始化 
如果沒(méi)有定義構(gòu)造函數(shù),struct可以用大括號(hào)初始化。 
如果沒(méi)有定義構(gòu)造函數(shù),且所有成員變量全是public的話,可以用大括號(hào)初始化。

關(guān)于默認(rèn)訪問(wèn)權(quán)限 
class中默認(rèn)的成員訪問(wèn)權(quán)限是private的,而struct中則是public的。 
關(guān)于繼承方式 
class繼承默認(rèn)是private繼承,而struct繼承默認(rèn)是public繼承。

C中,結(jié)構(gòu)不允許含有成員函數(shù),在c++中則允許含有成員函數(shù)

比較一下   C   語(yǔ)言的   struct   和   C++   的   struct   好了 
訪問(wèn)權(quán)限: 
C:public   (沒(méi)有   private   訪問(wèn)權(quán)限) 
C++:默認(rèn)   public,可以用   protected/private   限制 
內(nèi)容: 
C:只有數(shù)據(jù) 
C++:可以有數(shù)據(jù)、成員函數(shù)、構(gòu)造析構(gòu)函數(shù),與   class   相同 
其它: 
C:除了存放數(shù)據(jù),沒(méi)有其它功能 
C++:可以與   class   參與繼承,可以重載操作符,可以有模板結(jié)構(gòu)。。。 
使用: 
C:需要   struct   s   作為名稱聲明變量 
C++:struct   關(guān)鍵字在聲明變量的時(shí)候可選

C++中struct已經(jīng)被擴(kuò)展,已經(jīng)不再是C時(shí)代的struct

那么C#中的struct 和C++里的區(qū)別在哪呢?

(*) struct的內(nèi)存分配不同 
C#: 在棧上分配 
c++: 在哪分配由程序員說(shuō)了算,只有用new的時(shí)候才在堆上分配

說(shuō)實(shí)話我對(duì)堆棧的區(qū)別也有些不清楚可以參考http://baike.baidu.com/view/93201.htm

stack:

由系統(tǒng)自動(dòng)分配。 例如,聲明在函數(shù)中一個(gè)局部變量 int b; 系統(tǒng)自動(dòng)在棧中為b開(kāi)辟空間

heap:

需要程序員自己申請(qǐng),并指明大小,在c中malloc函數(shù)

如p1 = (char *)malloc(10);

在C++中用new運(yùn)算符

如p2 = new char[20];//(char *)malloc(10);

在C#中class是引用類(lèi)型分配在堆中 struct是值類(lèi)型分配在棧中。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多