在c++中,不僅有強大的類而且也有結構體struct。那麼兩者有什麼區別呢?
首先,c++增加了“類”類型之後,還保留了結構體類型,並且對它的功能進行了拓展。但是爲什麼有了強大的類之後我們還要保留下這個結構體類型呢?這是因爲在c++設計時的一項原則:c++必須兼容C,使大量過去的C程序可以不加修改的在C++環境下使用。所以我們保留了結構體類型。而且在C++中結構體也具有了類的特點,這樣用於面向對象的程序設計就更加簡便。
但是,用struct和class聲明的類是有區別的。用struct聲明的類,假如不使用訪問限制符(private,public,protect)進行聲明,那麼系統會默認爲public。但是class就會默認爲private。
下面舉個例子:
#include<iostream> using namespace std; class Student { int number; char name[20]; }; struct Student1 { int num; char name[20]; }; int main() { Student1 s1; Student s; s1.num = 10; s.number = 10; return 0; }
這段代碼在編譯時,會出現錯誤。提示你
s.number = 10;
這行代碼所要訪問的值在上面聲明爲不可訪問。而
s1.num = 10;
這行代碼則編譯通過。