列表

详情


62. 说一说 C++ 和 C 中 struct 的区别以及和 class 的区别

回答思路

得分点 成员、权限、使用、用途 标准回答 C++ 和 C 中 struct 的区别: 1. C 的结构体不允许有函数存在,C++ 的结构体允许有内部成员函数,并且允许该函数是虚函数 2. C 的结构体内部成员不能加权限,默认是 public,而 C++ 的结构体内部成员权限可以是 public、protected、private,默认 public 3. C 的结构体是不可以继承,C++ 的结构体可以从其它的结构体或者类继承 4. C 中的结构体不能直接初始化数据成员,C++ 中可以 5. C 中使用结构体需要加上 struct 关键字,或者对结构体使用 typedef 取别名后直接使用,而 C++ 中使用结构体可以省略 struct 关键字直接使用 struct student{ int age; string name; } typedef struct student student2; //C中取别 struct student stu1; // C 中正常使用 student2 stu2; // C 中通过取别名的使用 student stu3; // C++ 中使用,C 中直接使用编译不通过 ``` struct 和 class 的区别: 1. struct 一般用于描述一个数据结构集合,而 class 是对一个对象数据的封装 2. struct 中默认访问控制权限是 public,而 class 中默认的访问控制权限是 private struct A { int iNum; // 默认访问控制权限是 public } class B { int iNum; // 默认访问控制权限是 private } 3. 在继承关系中,struct 默认是公有继承,而 class 是私有继承 4. class 关键字可以用于定义模板参数,而 struct 不能 template<class t=""> int func(const T& t, const Y& y) { }</class>

上一题