#include?<iostream>
#include?<stdlib.h>
#include?<string>
using?namespace?std;
/**
?*?定義動物類:Animal
?*?虛函數(shù):eat()
?*?純虛函數(shù):move()
?*?數(shù)據(jù)成員:m_strName
?*/
class?Animal
{
public:
????//?默認(rèn)構(gòu)造函數(shù)
????Animal(){};
????//?含參構(gòu)造函數(shù)
Animal(string?name){m_strName?=?name;?cout?<<?"Animal"?<<?endl;}
????//?虛析構(gòu)函數(shù)
virtual?~Animal(){cout?<<?"~Animal"?<<?endl;}
????//?虛成員函數(shù)
virtual?void?eat(){cout?<<?"Animal--"?<<?m_strName?<<?"--?eat"?<<?endl;}
????//?純虛函數(shù)
virtual?void?move()=0;
public:
????//?數(shù)據(jù)成員
string?m_strName;
};
/**
?*?定義狗類:Dog
?*?公有繼承動物類
?*?虛成員函數(shù):eat()、move()
?*/
class?Dog?:?public?Animal
public:
????//?默認(rèn)構(gòu)造函數(shù)
????Dog(){};
????//?含參構(gòu)造函數(shù)
Dog(string?name){m_strName?=?name;?cout?<<?"Dog"?<<?endl;}
????//?虛析構(gòu)函數(shù)
virtual?~Dog(){cout?<<?"~Dog"?<<?endl;}
????//?虛成員函數(shù)eat()
virtual??void?eat(){cout?<<?"Dog--"?<<?m_strName?<<?"?--?eat"?<<?endl;}
????//?虛成員函數(shù)move()
virtual?void?move(){cout?<<?"Dog--"?<<?m_strName?<<?"?--?move"?<<?endl;}
public:
????//?數(shù)據(jù)成員
string?m_strName;
};
int?main(void)
{
????//?通過動物類實例化狗類
????Animal?*p=new?Dog("狗類");
????//?調(diào)用成員函數(shù)
p->eat();
????p->move();
????//?釋放內(nèi)存
delete?p;
p=NULL;
????
return?0;
}
2018-04-18
少了一個括號呀,Dog類前面的大括號沒有
2018-07-01
我也被坑了,這老師咋坑我們學(xué)生呢