#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;
}
部分赋值和异型赋值
最新推荐文章于 2022-02-18 16:12:07 发布