32、確定你的public繼承塑模出is-a關(guān)系
- “public繼承”意味is-a。適用于base class身上的每一件事情一定也適用于derived class身上,因?yàn)槊恳粋€(gè)derived class對(duì)象也都是一個(gè)base class對(duì)象。
33、避免遮掩繼承而來(lái)的名稱
-
derived class 作用域被嵌套在base class作用域內(nèi)。
0.png


34、
35、考慮virtual函數(shù)以外的其他選擇
36、
#include <iostream>
using namespace std;
class Shape{
public:
enum ShapedColor { Red=0,Green,Blue };
virtual void draw(ShapedColor color = Red)const= 0 ;
};
class Rectangle:public Shape{
public:
void draw(ShapedColor color=Red )const;
};
void Rectangle::draw(ShapedColor color )const
{
cout << "Recangle class: ";
cout << color<<endl;
}
int main()
{
Rectangle r ;
r.draw();
Shape*pr = &r;
pr->draw();
return 0;
}
