基类和派生类:谈继承

class CShape

{

  private:

    int  m_color;

  public:

    void  setcolor(int color){ m_color = color;}

}

 

class CRect:public CShape

{

  void   display(){...}

}

 

CRect  rect1, rect2;

rect1.setcolor(1);

rect1.display();

 

rect2.setcolor(2);

rect2.display();

 

1.所有类都由CShape派生下来,所以它们都自然而然继承了CShape的成员,包括变量和函数,也就是说,所有的形状都“暗自”具备了m_color变量和setcolor函数。

2.所有矩形对象rect1和rect2各自有自己的m_color,但关于setcolor函数却都是共享相同的CRect::setcolor(),其实更应该说是CShape::setcolor。使用this指针

posted @ 2016-02-28 15:13  debugme  阅读(184)  评论(0编辑  收藏  举报