在c++中,不只有強大的類並且也有結構體struct。那麼二者有什麼區別呢?ios
首先,c++增長了「類」類型以後,還保留告終構體類型,而且對它的功能進行了拓展。可是爲何有了強大的類以後咱們還要保留下這個結構體類型呢?這是由於在c++設計時的一項原則:c++必須兼容C,使大量過去的C程序能夠不加修改的在C++環境下使用。因此咱們保留告終構體類型。並且在C++中結構體也具備了類的特色,這樣用於面向對象的程序設計就更加簡便。c++
可是,用struct和class聲明的類是有區別的。用struct聲明的類,假如不使用訪問限制符(private,public,protect)進行聲明,那麼系統會默認爲public。可是class就會默認爲private。ide
下面舉個例子:spa
#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;
這行代碼則編譯經過。it