一个关于C++编程的问题,代码有错误,无法编译,要怎么改?
#include"iostream"
#include"string"
using namespace std;
class Teacher
{
public:
Teacher(string nam,int a,string t)
{
name=nam;
age=a;
title=t;
}
void display()
{
cout<<"name: "<<name<<endl;
cout<<"age: "<<age<<endl;
cout<<"title: "<<title<<endl;
}
protected:
string name;
int age;
string title;
};
class Student
{
public:
Student(char nam[],char s,float sco)
{
strcpy(namel,nam);
sex=s;
score=sco;
}
void displayl()
{
cout<<"name:"<<namel<<endl;
cout<<"sex:"<<sex<<endl;
cout<<"score: "<<sex<<endl;
}
protected:
string namel;
char sex;
float score;
};
class Graduate:public Teacher,public Student
{
public:
Graduate(string nam,int a,char s,string t,float sco,float w):
Teacher(nam,a,t),Student(nam,s,sco),wage(w){}
void show()
{
cout<<"name: "<<name<<endl;
cout<<"age: "<<age<<endl;
cout<<"sex: "<<sex<<endl;
cout<<"score: "<<score<<endl;
cout<<"title: "<<title<<endl;
cout<<"wages: "<<wage<<endl;
}
private:
float wage;
};
int main()
{
Graduate gradl("Wang_li",24,'f',"assistant",89.5,2400);
gradl.show();
return 0;
}
最佳答案
你对C++的字串用法有问题
最简单的修改
Student(char nam[], char s, float sco)
{
strcpy(namel, nam);
为
Student(string nam, char s, float sco)
{
namel=nam;
程序就可以编译运行了,结果为
name: Wang_li
age: 24
sex: f
score: 89.5
title: assistant
wages: 2400
其他回答
暂无其它回答!