background image

 

view plaincopy to clipboardprint?
struct B {   
public:   
   int bm1;   
protected:   
   int bm2;   
private:   
   int bm3;   
   static int bsm;   
   void bf();   
   static void bsf();   
   typedef void* bpv;   
   struct N { };   
};  
struct B {
public:
   int bm1;
protected:
   int bm2;
private:
   int bm3;
   static int bsm;
   void bf();
   static void bsf();
   typedef void* bpv;
   struct N { };
};   

译者注:B 中,为何 static int bsm 不占用内存空间?因为它是静态成员,该数据存放在程

 

 

序的数据段 中,不在类实例中。

2.3 

 

单继承

C++ 提供继承的目的是在不同的类型之间提取共性。比如,科学家对物种进行分类,从而
有种、属、纲等说法。有了这种层次结构,我们才可能将某些具备特定性质的东西归入到最

合适的分类层次上,如 怀孩子的是哺乳动物 。由于这些属性可以被子类继承,所以,我

们只要知道 鲸鱼、人 是哺乳动物,就可以方便地指出 鲸鱼、人都可以怀孩子 。那些特例,
如鸭嘴兽(生蛋的哺乳动物),则要求我们对缺省的属性或行为进行覆盖。
C++

中的继承语法很简单,在子类后加上 :base”就可以了。下面的 D 继承自基类 C