在c++中struct和class的區別

  在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

相關文章
相關標籤/搜索