首页 > 代码库 > C++中class与struct的区别(struct的类型名同时可以作为变量名)

C++中class与struct的区别(struct的类型名同时可以作为变量名)

通常我们知道的区别:

(一)默认继承权限。如果不明确指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理;

(二)成员的默认访问权限。class的成员默认是private权限,struct默认是public权限。

  除了这两点,class和struct基本就是一个东西。语法上没有任何其它区别。

 

昨天发现一个不知道算不算是区别的东西:

struct的类型名同时可以作为变量名,显然class是不可以的,也可以理解,因为class各类型变量定义时直接是类名,而struct的是struct+结构体名来定义变量的。

示例如下:

#include<iostream>using namespace std;struct tt{int a;int b;};int main(){    struct tt tt;    tt.a=13;    tt.b=43;    cout<<tt.b<<endl;    return 0;}