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