結構體和類的區別

2021-07-22 06:07:42 字數 778 閱讀 1703

1 在c++  中結構體和類的主要區別是: 結構體所有成員預設是 公有的,但是類預設是私有的。

2 結構體可以有建構函式,在使用的時候可以使用建構函式分配記憶體,也可以使用malloc分配記憶體

3 關於c語言中結構體:

a) c語言中的結構體不能為空,否則會報錯

b) c語言中的結構體只涉及到資料結構,而不涉及到演算法,也就是說在c中資料結構和演算法是分離的。換句話說就是c語言中的結構體只能定義成員變數,但是不能定義成員函式。然而在c++中既可以定義成員變數又可以定義成員函式, c++中的結構體和類體現了資料結構和演算法的結合。

typedef struct

mystruct;

typedef struct __mes_

}mymes;

typedef listinfolist;

typedef listmeslist;

typedef list::iterator mesite;

int _tmain(int argc, _tchar* argv)

list::iterator it_begin = m_info.begin();

list::iterator it_end = m_info.end();

while (it_begin!= it_end)

mesite its = m_meslist.begin();

mesite ite = m_meslist.end();

while(its != ite)

{ cout<<(*its)->type<

類和結構體區別

c 中類和結構體區別 類是有行動 方法和成員的有機體,而結構體是活生生的有機體。1 值型別和引用型別 類是引用型別,繼承system.object,資料儲存在堆上,結構體值型別,繼承system.valuetype,資料儲存在堆疊上 堆疊上的物件有編譯器自動建立和銷毀,所以堆疊的執行效率要高些,但是...

結構體和類的區別

結構體和類的區別 結構體struct 的預設成員訪問許可權是public 類class的預設成員訪問許可權是private ps 以前總以為struct不能定義成員函式 包括建構函式 析構函式 其實是錯誤的。在c 裡面,class和struct除了上面的不同,其他完全一致。可能有人會想,那為什麼c ...

結構體和類的區別

1.c的結構體和c 結構體的區別 1.1 c的結構體內不允許有函式存在,c 允許有內部成員函式,且允許該函式是虛函式。所以c的結構體是沒有建構函式 析構函式 和this指標的。1.2 c的結構體對內部成員變數的訪問許可權只能是public,而c 允許public,protected,private三...