vc0902.cpp

来自「VC面向对象的学习教程」· C++ 代码 · 共 42 行

CPP
42
字号
//Example 9.2:虚函数实现多态性
#include <iostream.h> 
class Pet 						//基类
{
public:
	virtual void Speak() 
	{ cout<<"How does a pet speak ?"<<endl; } 
};       

class Cat : public Pet 				//派生类	
{
public:
	virtual void Speak()
	{ cout<<"miao!miao!"<<endl; }
}; 
class Dog : public Pet				//派生类
{
public:
	virtual void Speak()
	{ cout<<"wang!wang!"<<endl; }
};
void main()
{
	Pet	*p1, *p2, *p3,obj;			//基类对象指针p1, 基类对象obj
	Dog dog1;
	Cat cat1; 
	obj = dog1;					//用Dog类对象给Pet类对象赋值
	obj.Speak();	
	p1 = &cat1; 					//用Cat类对象地址给基类指针赋值
	p1->Speak(); 
	p1 = &dog1; 					//用Dog类对象地址给基类指针赋值
	p1->Speak(); 
	p2=new Cat;					//动态生成Cat类对象
	p2->Speak();
	p3=new Dog;					//动态生成Dog类对象
	p3->Speak();
	Pet	&p4 = cat1;				//以Cat类对象初始化Pet类引用 
	p4.Speak();
	delete p2;
	delete p3;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?