struct預設成員為public的,class預設成員為private的,此外並沒有什麼區別
所以用乙個結構體給另乙個結構體賦值時,一般結構體裡如果沒有定義賦值運算子,則會像類那樣使用預設賦值運算子或缺省拷貝建構函式。
1 #include 23using
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預...