在c++中struct和class的區別

  在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;

這行代碼則編譯通過。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章