C++学习笔记——面向对象

文章目录

  • C++学习笔记——面向对象
    • P11 组合与继承
    • P12 虚函数与多态
    • P13 委托相关设计

C++学习笔记——面向对象

视频链接
【系统开发】 C++系统工程师(入门到进阶/适合有一定基础)

P11 组合与继承

  • 继承:is - a,父类的数据被完全继承;构造由内而外,析构由外而内;父类的析构函数必须是virtual;
  • 复合:has - a,寿命一致;构造由内而外,析构由外到内,由编译器完成;
  • 委托:composition by reference,通过指针的方式拥有,寿命不一致;copy on write

P12 虚函数与多态

  • 虚函数:函数的继承是继承的调用权
    • 非虚函数:不希望子类重新定义(override,覆盖)
    • 虚函数:希望子类重新定义,且有默认定义
    • 纯虚函数:希望子类一定要重新定义,没有默认定义
class Shape{
public:
	virtual void draw() const = 0;//纯虚函数
	virtual void error(const std::string& msg);//虚函数
	int objectID() const;//非虚函数
};
class Rectangle:public Shape{...};
class Ellipse:public Shape{...};

P13 委托相关设计

  • 复合模式Composite
  • 原型模式Prototype

你可能感兴趣的:(C++学习笔记——面向对象)