zoukankan      html  css  js  c++  java
  • 延期类

    例如我们在计算个人资产净值时,汽车,珠宝,不动产,股票,银行存款都是个人资产的不同类型。

    所谓净值是资产的当前现金价值。汽车的净值根据它的保养情况,行驶里程,使用年限有关。

    而珠宝的净值会随年限增长,也就是说不能用一个函数来实现计算净值

     1 class TPersonalAsset
     2 {
     3 public:
     4     TPersonalAsset(const char purchaseDate[]);
     5     //虽然未显示拷贝构造函数,赋值操作符等,但必须实现它们
     6     virtual ~TPersonalAsset();
     7     
     8     //该资产当前的价值
     9     virtual float ComputeNetWorth() const;
    10 
    11     //该资产是否投保?
    12     virtual bool IsInsurable() const;
    13 
    14     void SetPurchaseDate(const char date[]);
    15     //更多细节已省略
    16 
    17 private:
    18     TDate _purchaseDate;
    19 };

    实现ComputeNetWorth()是很难的

    我们希望保证TPersonAsset的所以派生类都可以使用ComputerNetWorth方法,而且确保任何人都无法创建(实例化)

    TPersonalAsset类的对象(因为ComputerNetWorth方法并未实现)。

    这是抽象类(也就是延期类)就拍上用处了。

    defines:

    1.抽象类:包含(甚至通过继承)至少一个纯虚函数的类。

    2.纯虚函数:在类声明中等于0的虚函数。

     1 class TPersonalAsset
     2 {
     3 public:
     4     TPersonalAsset(const char purchaseDate[]);
     5     //虽然未显示拷贝构造函数,赋值操作符等,但必须实现它们
     6     virtual ~TPersonalAsset();
     7     
     8     //该资产当前的价值
     9     virtual float ComputeNetWorth() const = 0;
    10 
    11     //该资产是否投保?
    12     virtual bool IsInsurable() const;
    13 
    14     void SetPurchaseDate(const char date[]);
    15     //更多细节已省略
    16 
    17 private:
    18     TDate _purchaseDate;
    19 };

    抽象类的独特性质:

    1.不能创建抽象类的对象,但是,指向抽象类的指针和对抽象类的引用仍然合法。

    2.抽象类只能用于基类。换言之,派生类是抽象类的唯一客户。

    3.如果通过抽象类创建派生类的对象,那么抽象类的每个派生类都必须实现所继承的纯虚函数(否则派生类也将成为一个抽象类)

    note:

    为什么IsInsurable成员函数是虚函数,因为该例认为资产随着时间的推移,可能变得不可投保(太陈旧,没有市场价值)。为了

    说明这种行为的变化,每种资产都可以覆盖IsInsurable成员函数,并单独动态地确定它们是否可投保。

  • 相关阅读:
    滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(1月27日)
    北京Uber优步司机奖励政策(1月27日)
    成都Uber优步司机奖励政策(1月26日)
    北京Uber优步司机奖励政策(1月26日)
    滴滴快车奖励政策,高峰奖励,翻倍奖励,按成交率,指派单数分级(1月26日)
    天津Uber优步司机奖励政策(1月25日~1月31日)
    南京Uber优步司机奖励政策(1月25日~1月31日)
    宁波Uber优步司机奖励政策(1月25日~1月31日)
    tp5项目搭建思路
    tp5框架知识点
  • 原文地址:https://www.cnblogs.com/zhengzhe/p/6603773.html
Copyright © 2011-2022 走看看