码迷,mamicode.com
首页 > 其他好文 > 详细

struct和class的联系与区别

时间:2015-01-10 10:02:40      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

  C++支持另一个关键字struct,它也可以定义类类型。struct关键字是从C语言继承过来的。

默认初始访问级别不同:

  如果使用class关键字来定义类,那么定义在第一个访问标号前的任何成员都隐式指定为private;如果使用struct关键字,那么这些成员都是public,使用class还是struct关键字来定义类,仅仅影响默认的初始访问级别。

 

默认继承级别不同:

  class保留字定义的派生类默认具有private继承,而用struct保留字定义的类默认具有public继承

  

1 class Base {}
2 class D1: Base {}; //public inheritance by default
3 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 D4
16 class D4: Base { //inheritance private by default
17     /*...*/            //initial member access private by default
18 };

 

  一般来说只有数据时候使用struct,其它一概使用class。

  如果需要更多函数功能,class更适合,如果不确定,直接使用class。

struct和class的联系与区别

标签:

原文地址:http://www.cnblogs.com/vincently/p/4214492.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!