Animal 是纯虚函数?
Animal 是纯虚函数,可是为什么可以用来实例化对象呢?
Animal *animal=new Dog("狗类");
这样写竟然可以通过编译!!!!!
Animal 是纯虚函数,可是为什么可以用来实例化对象呢?
Animal *animal=new Dog("狗类");
这样写竟然可以通过编译!!!!!
2015-10-26
#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
class Animal
{
public:
Animal() {}
Animal(string name)
{
m_strName = name;
cout << "Animal" << endl;
}
virtual ~Animal()
{
cout << "~Animal" << endl;
}
virtual void eat()
{
cout << "Animal--" << m_strName << "-- eat" << endl;
}
virtual void Move() =0;
public:
string m_strName;
};
class Dog : public Animal
{
public:
Dog() {}
Dog(string name)
{
m_strName = name;
cout << "Dog" << endl;
}
virtual ~Dog()
{
cout << "~Dog" << endl;
}
virtual void eat()
{
cout << "Dog--" << m_strName << " -- eat" << endl;
}
virtual void Move()
{
cout << "Dog--" << m_strName << " -- move" << endl;
}
public:
string m_strName;
};
int main(void)
{
Animal *animal=new Dog("狗类");
animal->eat();
animal->Move();
delete animal;
animal=NULL;
return 0;
}Animal *animal=new Dog("狗类");就是这句代码
举报