C++程序设计语言练习 12.1 虚基类的简单实现

来源:互联网 发布:淘宝免费代销货源 编辑:程序博客网 时间:2024/04/28 05:44

我的代码如下:

#include "stdafx.h"#include <iostream>using std::cout;class Base{public:virtual void iam(){ cout << "Base\n"; }virtual ~Base(){};};class deriveA:public Base{public:void iam() override { cout << "DeriveA\n"; }};class deriveB :public Base{public:void iam() override { cout << "DeriveB\n"; }};void print(Base * bp){bp->iam();}int _tmain(int argc, _TCHAR* argv[]){deriveA a;deriveB b;a.iam();b.iam();deriveA *ap = &a;deriveB *bp = &b;print(ap);print(bp);return 0;}


注意:

由于在虚基类中没有数据成员,因此不需要构造函数,但是需要定义虚析构函数,确保有数据成员的派生类被正常清理。

override保留字只是作为强调说明,并不是C++关键字,没有强制意味。

派生类指针可以直接传给基类指针变量,并且可以完美确定类方法的调用。

0 0
原创粉丝点击