C++中class與struct的區別(struct的類型名同時可以作爲變量名)
原文地址:http://www.cnblogs.com/albert1017/p/3897739.html
通常我們知道的區別:
(一)默認繼承權限。如果不明確指定,來自class的繼承按照private繼承處理,來自struct的繼承按照public繼承處理;
(二)成員的默認訪問權限。class的成員默認是private權限,struct默認是public權限。
除了這兩點,class和struct基本就是一個東西。語法上沒有任何其它區別。
昨天發現一個不知道算不算是區別的東西:
struct的類型名同時可以作爲變量名,顯然class是不可以的,也可以理解,因爲class各類型變量定義時直接是類名,而struct的是struct+結構體名來定義變量的。
示例如下:
複製代碼
#include<iostream>
using namespace std;
struct tt{
int a;
int b;
};
int main(){
struct tt tt;
tt.a=13;
tt.b=43;
cout<<tt.b<<endl;
return 0;
}
通常我們知道的區別:
(一)默認繼承權限。如果不明確指定,來自class的繼承按照private繼承處理,來自struct的繼承按照public繼承處理;
(二)成員的默認訪問權限。class的成員默認是private權限,struct默認是public權限。
除了這兩點,class和struct基本就是一個東西。語法上沒有任何其它區別。
昨天發現一個不知道算不算是區別的東西:
struct的類型名同時可以作爲變量名,顯然class是不可以的,也可以理解,因爲class各類型變量定義時直接是類名,而struct的是struct+結構體名來定義變量的。
示例如下:
複製代碼
#include<iostream>
using namespace std;
struct tt{
int a;
int b;
};
int main(){
struct tt tt;
tt.a=13;
tt.b=43;
cout<<tt.b<<endl;
return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.