在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;
这行代码则编译通过。