部分賦值和異型賦值

#include <iostream>
using namespace std;
class Animal
{
public:
	Animal(int i=1)
	{
		i1=i;
	}
	virtual Animal& operator=(const Animal &rhs)
	{
		i1=rhs.i1;
		return *this;
	}
	 void did()
	{
		cout<<"In Animal";
	}
protected:
private:
	int i1;
};
class Lizard:public Animal
{
public:
	Lizard(int i=2):Animal(i)
	{
		i2=i;
	}
	virtual Lizard& operator=(const Lizard &rhs)
	{
		i2=rhs.i2;
		return *this;

	}
	 void did()
	{
		cout<<"In Lizard";
	}
protected:
private:
	int i2;
};
class Chicken:public Animal
{
public:
	Chicken(int i=2):Animal(i)
	{
		i3=i;
	}
	virtual Chicken& operator=(const Chicken &rhs)
	{
		i3=rhs.i3;
		return *this;
	}
	 void did()
	{
		cout<<"In Chicken";
	}
protected:
private:
	int i3;
};
void main()
{
	//test 1
// Lizard liz1(2);
// Lizard liz2(3);
// Animal* pAnimal1=&liz1;
// Animal* pAnimal2=&liz2;
// *pAnimal1=*pAnimal2;
	Lizard liz(5);
	Chicken chick(7);
	/*Animal* pAnimal1=&liz;*/
	Animal* pAnimal1=&liz;
	Animal* pAnimal2=&chick;
	*pAnimal1=*pAnimal2;
	
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章