在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

相关文章
相关标签/搜索