求C++类的继承构造函数有关问题!';' : expected member function definition to end with '}'
求C++高手指点类的继承构造函数问题!';' : expected member function definition to end with '}'
#include<iostream>
using namespace std;
class Mammal{
private:
int age,weight;
public:
Mammal(int a=0,int b=10);
Mammal(Mammal& k);
~Mammal(){cout<<"Manmal 析构函数被调用"<<endl;}
};
class Dog:public Mammal{
public:
Dog(int x,int y,int z,int q,int t):Mammal(x,y),B(q,t);
~Dog(){cout<<"Dog 析构函数被调用"<<endl;}
private:
int value;
Mammal B;
};
Mammal::Mammal(int a,int b){
age=a;
weight=b;
cout<<"Mammal构造函数被调用"<<endl;
}
Mammal::Mammal(Mammal& k){
age=k.age;
weight=k.weight;
cout<<"Mammal复制够着函数被调用"<<endl;
}
Dog::Dog(int x,int y,int z,int q,int t){
value=z;
cout<<"Dog析构函数被调用"<<endl;
}
int main()
{
Dog A(1,2,3,4,5);
return 0;
}
提示错误::\mico visual C++\练习代码\Cppkenben7-6.cpp(13) : error C2969: syntax error : ';' : expected member function definition to end with '}'
Error executing cl.exe.
求指点,改正啊
------解决方案--------------------
#include<iostream>
using namespace std;
class Mammal{
private:
int age,weight;
public:
Mammal(int a=0,int b=10);
Mammal(Mammal& k);
~Mammal(){cout<<"Manmal 析构函数被调用"<<endl;}
};
class Dog:public Mammal{
public:
Dog(int x,int y,int z,int q,int t):Mammal(x,y),B(q,t);
~Dog(){cout<<"Dog 析构函数被调用"<<endl;}
private:
int value;
Mammal B;
};
Mammal::Mammal(int a,int b){
age=a;
weight=b;
cout<<"Mammal构造函数被调用"<<endl;
}
Mammal::Mammal(Mammal& k){
age=k.age;
weight=k.weight;
cout<<"Mammal复制够着函数被调用"<<endl;
}
Dog::Dog(int x,int y,int z,int q,int t){
value=z;
cout<<"Dog析构函数被调用"<<endl;
}
int main()
{
Dog A(1,2,3,4,5);
return 0;
}
提示错误::\mico visual C++\练习代码\Cppkenben7-6.cpp(13) : error C2969: syntax error : ';' : expected member function definition to end with '}'
Error executing cl.exe.
求指点,改正啊
------解决方案--------------------
- C/C++ code
#include<iostream> using namespace std; class Mammal{ private: int age,weight; public: Mammal(int a=0,int b=10); Mammal(Mammal& k); ~Mammal(){cout<<"Manmal 析构函数被调用"<<endl;} }; class Dog:public Mammal{ public: Dog(int x,int y,int z,int q,int t):Mammal(x,y),value(z),B(q,t){} ~Dog(){cout<<"Dog 析构函数被调用"<<endl;} private: int value; Mammal B; }; Mammal::Mammal(int a,int b){ age=a; weight=b; cout<<"Mammal构造函数被调用"<<endl; } Mammal::Mammal(Mammal& k){ age=k.age; weight=k.weight; cout<<"Mammal复制够着函数被调用"<<endl; } int main() { Dog A(1,2,3,4,5); system("pause"); return 0; }
------解决方案--------------------
:Mammal(x,y),B(q,t)放在定义处,而不是声明处
------解决方案--------------------
Dog(int x,int y,int z,int q,int t):Mammal(x,y),B(q,t);
构造函数没有实体啊
Dog(int x,int y,int z,int q,int t):Mammal(x,y),B(q,t){}
------解决方案--------------------
------解决方案--------------------
构造函数没有实体