C++设计模式
上QQ阅读APP看书,第一时间看更新

1.1 类方法

本章的内容从小码路买的第一辆汽车DZ说起。DZ由引擎提供动力,假设引擎是不会坏的。汽车行驶两年后,轮胎轻微变形,这时小码路想给汽车换一套新的轮胎,于是一个汽车类就产生了。

//汽车类
class Car
{
    public:
        Car(string en):engineName(en){}
        void SetCommonEngine(){cout<<"commonEngine is: "<< engineName<<endl;}
        virtual string SetDiffTire(string tire) = 0;
    protected:
        string engineName;
};

DZ的原装“miqilin”轮胎质量相当好。可是小码路买了车之后,生活拮据,所以准备换相对便宜的“weichai”轮胎。小码路考虑到两年后又要为DZ换轮胎,所以上面程序中提供的轮胎接口SetDiffTire(string tire)就显得相当重要了,改写后的程序如下。

//DZ继承自汽车类
class DZ:public Car
{
    public:
        DZ(string en):Car(en){}
        string SetDiffTire(string tire)
        {
            return tire;
        }    
};
 
Car *car = new DZ("weichai");
 
car->SetCommonEngine();
 
cout<<car->SetDiffTire("miqilin")<<endl;
cout<<car->SetDiffTire("weichai")<<endl;
delete car;