struct 和 class的區別

2022-03-12 11:00:13 字數 1596 閱讀 3812

struct預設成員為public的,class預設成員為private的,此外並沒有什麼區別

所以用乙個結構體給另乙個結構體賦值時,一般結構體裡如果沒有定義賦值運算子,則會像類那樣使用預設賦值運算子或缺省拷貝建構函式。

1 #include 2

3using

namespace

std;45

struct

xiaomao6;

1112

struct

damao13;

1819

20int

main()

21};

23 cout << "aa"

<24 cout << aa.a <25 cout << aa.b <26 cout << aa.c[0] << "

"<< aa.c[1] << "

"<< aa.c[2] <27 xiaomao bb =aa;

28 cout << "bb"

<29 cout << bb.a <30 cout << bb.b <31 cout << bb.c[0] << "

"<< bb.c[1] << "

"<< bb.c[2] <32 bb.c[0] = 666

;33 cout << "

after change: bb.c[0]:

"<< bb.c[0] << "

"<< "

aa.c[0]:

"<< aa.c[0] <34damao cc;

35 cc.a = 12

;36 cc.b = 13.0

;37 cc.c = new

int[2

];38 cc.c[0] = 5

;39 cc.c[1] = 6

;40 cout << "cc"

<41 cout << cc.a <42 cout << cc.b <43 cout << cc.c[0] << "

"<< cc.c[1] <44 damao dd =cc;

45 cout << "dd"

<46 cout << dd.a <47 cout << dd.b <48 cout << dd.c[0] << "

"<< dd.c[1] <4950 dd.c[0] = 666

;51 cout << "

after change: dd.c[0]:

"<< dd.c[0] << "

"<< "

cc.c[0]:

"<< cc.c[0] <5253

return0;

54 }

執行結果:aa1

23 4 5bb1

23 4 5

after change: bb.c[0]:666  aa.c[0]:3

cc12

135 6

dd12

135 6

after change: dd.c[0]:666  cc.c[0]:666

struct和class的區別

1.值型別與引用型別 結構是值型別 值型別在堆疊上分配位址,所有的基型別都是結構型別,例如 int 對應system.int32 結構,string 對應 system.string 結構 通過使用結構可以建立更多的值型別 類是引用型別 引用型別在堆上分配位址 堆疊的執行效率要比堆的執行效率高,可是...

class和struct的區別

從語法上,在c 中 只討論c 中 class和struct做型別定義時只有兩點區別 一 預設繼承許可權。如果不明確指定,來自class的繼承按照private繼承處理,來自struct的繼承按照public繼承處理 二 成員的預設訪問許可權。class的成員預設是private許可權,struct預...

class和struct的區別

從語法上,在c 中 只討論c 中 class和struct做型別定義時只有兩點區別 一 預設繼承許可權。如果不明確指定,來自class的繼承按照private繼承處理,來自struct的繼承按照public繼承處理 二 成員的預設訪問許可權。class的成員預設是private許可權,struct預...