首页 > 代码库 > struct和class的联系与区别
struct和class的联系与区别
C++支持另一个关键字struct,它也可以定义类类型。struct关键字是从C语言继承过来的。
默认初始访问级别不同:
如果使用class关键字来定义类,那么定义在第一个访问标号前的任何成员都隐式指定为private;如果使用struct关键字,那么这些成员都是public,使用class还是struct关键字来定义类,仅仅影响默认的初始访问级别。
默认继承级别不同:
class保留字定义的派生类默认具有private继承,而用struct保留字定义的类默认具有public继承
1 class Base {}2 class D1: Base {}; //public inheritance by default3 class D2: Base {}; //private inheritance by default
有一种常见的无解认为struct保留字定义的类与用class定义的类具有更大的区别。唯一的不同只是默认的成员保护级别和默认的派生保护级别,没有其他区别:
1 class D3 : public Base { 2 public: 3 /*...*/ 4 }; 5 //equivalent definition of D3 6 struct D3: Base { //inheritance public by default 7 /*...*/1 8 }; 9 10 11 struct D4 : private Base {12 private:13 /*...*/14 };15 //equivalent definition of D416 class D4: Base { //inheritance private by default17 /*...*/ //initial member access private by default18 };
一般来说只有数据时候使用struct,其它一概使用class。
如果需要更多函数功能,class更适合,如果不确定,直接使用class。
struct和class的联系与区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。