C++派生的简单问题(初学者)
D_Tam 2017-04-09 07:56:05 定义一个哺乳动物类Mammal,再由此派生出狗类Dog,定义一个Dog类的对象,观察基类与派生类的构造函数和析构函数的调用顺序。
输入样例:
Input Dog Name:wangcai
输出样例:
Con.Mammal;Con.Dog:wangcai;Des.Dog:wangcai;Des.Mammal;
#include <iostream>
#include <string>
using namespace std;
class Mammal
{
public:
Mammal(string name):name(name)
{
cout<<"Con.Mammal;";
}
~Mammal()
{
cout<<"Des.Mammal;";
}
protected:
string name;
};
class Dog: public Mammal
{
public:
Dog(string name):name(name) //错误处
{
cout<<"Con.Dog:"<<name<<";";
}
~Dog()
{
cout<<"Des.Dog:"<<name<<";";
}
private:
string name;
};
int main()
{
string name;
cout<<"Input Dog Name:";
cin>>name;
Dog d(name);
return 0;
}
以上是我的代码,错误处已在代码中标出,求老司机解释下为什么错,如何改正,谢谢!!!