在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