区分接口继承和实现继承ide
类包含的成员函数种类函数
1.静态函数spa
2.非静态函数code
2.1 普通函数(非虚) non-virtualblog
2.2 虚函数继承
2.2.1 纯虚函数 pure-virtual接口
2.2.2 非纯虚函数 impure-virtualci
1、接口继承string
继承类必需要实现声明为pure-virtual的函数,意味每一个继承类的特异化实现class
2、实现继承
继承类若有须要能够覆写(override)基类的impure-virtual函数,当不覆写时将使用基类提供的默认实现
3、普通非虚函数
继承类不该声明实现此类函数,不然该继承类将隐藏基类的实现。此类函数的意义就是强制全部继承类都使用基类的实现。
例子: 绘图类结构中, Shape做为抽象基类。
#pragma once #include <string> class Shape { public: virtual ~Shape(){} virtual void Draw() = 0; virtual void Error(const std::string& msg); int ObjectId() const; protected: private: }; class Rectangle : public Shape { public: void Draw() { //draw rectangle } void Error(const std::string& msg)override { //... } }; class Circle : public Shape { public: void Draw() { //draw circle } };