C++类函数问题
来源:百度知道 编辑:UC知道 时间:2024/05/11 05:45:45
用C++编程实现哺乳动物Mammal类,再由此派生出狗Dog类,二者都定义spark()成员函数,基类中定义为虚函数。再定义一个Dog类的对象,调用spark函数.观察程序的运行结果.在线等~哪位达人帮忙解下~
class Mammal
{
public:
virtual void spark(){ cout << "Mammal::spark()" << endl; }
};
class Dog : public Mammal
{
public:
void spark() { cout << "Dog::spark()" << endl; }
};
int main()
{
Mammal* pMammal = new Mammal;
pMammal->spark();
delete pMammal;
pMammal = new Dog;
pMammal->spark();
delete pMammal;
return 0;
}
// 随手写的,没有调试:)
运行结果是:派生类因为从新写了在虚函数,所以调用派生类的函数。
按照上面的代码,应该输出:
cout << "Mammal::spark()" << endl;
cout << "Dog::spark()" << endl;