多态:指向基类的指针

#include
using namespace std;

// 多态
class Animal{
	public:
		void speak(){
			cout << "动物在说话"<<endl; 
		}
}; 

class Cat:public Animal{
	public:
		void speak(){
			cout << "猫在说话"<<endl; 
		}
};

class Dog:public Animal{
	public:
		void speak(){
			cout << "狗在说话"<<endl; 
		}
};

void doSpeak(Animal &animal){
	// 
	animal.speak();
}; 

void test01(){
	
	Cat cat;
	//动物在说话。指向基类的指针如果不是虚基类 那么只能访问父类的内存空间,
	// 无法访问到子类新添加的空间。不然会有篡改未知地址的风险
	doSpeak(cat);
}



int main(){
	
	test01();
	
	return 0;
} 

你可能感兴趣的:(算法)