纯虚函数与抽象类
来源:互联网 发布:中科院计算所 知乎 编辑:程序博客网 时间:2024/05/16 15:52
#include <iostream>
using namespace std;
class Human//接口类ADT
{
public:
Human(){cout<<"构造人类!"<<endl;}
virtual void smart()=0; //纯虚函数.
virtual void beautiful()=0; //纯虚函数.
virtual ~Human(){cout<<"析构人类!"<<endl;}
};
class father:virtual public Human
{
public:
father(){cout<<"构造父亲类!"<<endl;}
virtual void beautiful(){cout<<"父亲不是很帅!"<<endl;};
virtual void smart(){cout<<"父亲很聪明!"<<endl;}
virtual ~father(){cout<<"析构父亲类!"<<endl;}
};
class mother:virtual public Human
{
public:
mother(){cout<<"构造母亲类!"<<endl;}
virtual void beautiful(){cout<<"母亲很漂亮!"<<endl;}
virtual void smart(){cout<<"母亲并不聪明!"<<endl;}
virtual ~mother(){cout<<"析构母亲类!"<<endl;}
};
class son:public father,public mother
{
public:
son(){cout<<"构造儿子类!"<<endl;}
virtual void smart(){cout<<"儿子也很聪明!"<<endl;}
virtual void beautiful(){cout<<"儿子也很英俊!"<<endl;}
virtual ~son(){cout<<"析构儿子类!"<<endl;}
};
int main()
{
Human *p;
/*可以定义一个抽象类的指针.*/
/*p=new Human 不可以定义抽象类的对象.*/
int choice=0;
while(choice<99)
{
bool quit=false;
cout<<"[0]退出[1]父亲[2]儿子[3]母亲:";
cin>>choice;
switch (choice)
{
case 0:
quit=true;
break;
case 1:
p=new father;
p->beautiful();
p->smart();
delete p;
break;
case 2:
p=new son;
p->beautiful();
p->smart();
delete p;
break;
case 3:
p=new mother;
p->beautiful();
p->smart();
delete p;
break;
default:cout<<"请输入从0到2之前的数"<<endl;
break;
}
if (quit==true)
{
break;
}
}
cout<<"程序结束!"<<endl;
return 0;
}
- 纯虚函数与抽象类
- 纯虚函数与抽象类
- 抽象类与纯虚函数
- C++纯虚函数与抽象类
- 纯虚函数与抽象类练习题
- C++纯虚函数与抽象类
- C++纯虚函数与抽象类
- 纯虚函数与抽象类
- C++抽象类与纯虚函数
- C++:纯虚函数与抽象类
- 抽象类与纯虚函数
- 纯虚函数与抽象类
- C++ 抽象类与纯虚函数
- C++ 纯虚函数与抽象类
- 纯虚函数与抽象基类
- C++纯虚函数与抽象类
- c++ 纯虚函数与抽象类
- C++纯虚函数与抽象类
- 使用 js createElement 子窗口向父窗口赋值并输出html的应用
- WINCE的编程忠告
- 水晶报表设计嵌入式开发
- 快捷键的使用
- 类的静态成员初始化。
- 纯虚函数与抽象类
- web详解一
- ORACLE 时区
- 水晶报表中动态添加字段
- 我的自然
- Servlet中输出XML解析中文乱码问题解决
- ASP 数组
- 水晶报表中加载本地图片
- web详解二