公式编译未通过_如何编译通过
#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;
}
private:
string name;
int age;
string title;
};
class Student
{
public:
Student(char nam[],char s,float sco)
{ strucpy(namel.nam);
sex=s;
score=sco;
}
void display()
{
cout<"name:"<<name<<endl;
cout<"sex:"<<sex<<endl;
cout<"score:"<<score<<endl;
}
private:
string namel;
char sex;
string score;
};
class Graducate:public Teacher,public Student
{
public:
Graducate(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<"title:"<<title<<endl;
cout<"sex:"<<sex<<endl;
cout<"score:"<<score<<endl;
cout<"sex:"<<sex<<endl;
cout<"wages:"<<swages<<endl;
}
private:
float wage;
};
int main()
{
Graduate gradl("wang_li",24,'f',"assistant",89.5,2400);
gradl.show();
return 0;
}
最佳答案
你的代码书写太乱,里面错误太多,比如"cout<",明显少了一个"<"号;比如strucpy(namel.nam)这个函数书写错误,参数传错,两个参数之间用“.”号错上加错。。。还有很多其它书写错误,拜托你先检查代码,至少先保证书写正确,然后再来分析语法错误吧
追问:
#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;} private:string name;int age;string title;};class Student{ public:Student(char nam[],char s,float sco){ strucpy(namel.nam);sex=s; score=sco;}void display(){cout<<"name:"<<name<<endl;cout<<"sex:"<<sex<<endl;cout<<"score:"<<score<<endl;} private: string namel;char sex;string score;};class Graducate:public Teacher,public Student{ public: Graducate(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<<endlcout<<"age:"<<age<<endl<cout<<"title:"<<title<<endl;cout<<"sex:"<<sex<<endl;cout<<"score:"<<score<<endl;cout<<"sex:"<<sex<<endl;cout<<"wages:"<<swages<<endl;} private: float wage;};int main(){Graduate gradl("wang_li",24,"f","assistant",89.5,2400);gradl.show();return 0;}
追问:
改了还是不能通过啊?
追问:
#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;} private:string name;int age;string title;};class Student{ public:Student(char nam[],char s,float sco){ strucpy(namel.nam);sex=s; score=sco;}void display(){cout<<"name:"<<name<<endl;cout<<"sex:"<<sex<<endl;cout<<"score:"<<score<<endl;} private: string namel;char sex;string score;};class Graducate:public Teacher,public Student{ public: Graducate(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<<endlcout<<"age:"<<age<<endl<cout<<"title:"<<title<<endl;cout<<"sex:"<<sex<<endl;cout<<"score:"<<score<<endl;cout<<"sex:"<<sex<<endl;cout<<"wages:"<<swages<<endl;} private: float wage;};int main(){Graduate gradl("wang_li",24,"f","assistant",89.5,2400);gradl.show();return 0;}
追问:
修改后是这样#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;} private:string name;int age;string title;};class Student{public: Student(char nam[],char s,float sco){strcpy(namel,nam);sex=s; score=sco;}void display(){cout<<"name:"<<namel<<endl;cout<<"sex:"<<sex<<endl;cout<<"score:"<<score<<endl;} private: string namel;char sex;string score;};class Graducate:public Teacher,public Student{ public: Graducate(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<<"title:"<<title<<endl; cout<<"sex:"<<sex<<endl; cout<<"score:"<<score<<endl; cout<<"sex:"<<sex<<endl; cout<<"wages:"<<swages<<endl;} private: float wage;};int main(){Graduate gradl("wang_li",24,"f","assistant",89.5,2400);gradl.show();return 0;} 追答:
1、首先看strcpy(namel, nam);这一行,strcpy用法错误,参数不支持string类型,由于Student中namel是string类型,且给Student传参时均使用string类型,所以可以改为Student(string nam, char s, float sco){ namel = nam; sex = s; score = sco;}2、仍然是Graducate类使用了父类中的私有成员,可以将两个父类中的成员设为public或protected类型。你需要了解这三种访问级别的作用及产生的后果,当然,还需要了解一下继承方式3、还是有两行书写错误:cout << "wages:" << swages << endl; Graduate gradl("wang_li", 24, "f", "assistant", 89.5, 2400);其中 swages应该是wage,Graduate应该是Graducate
按照上述修改后,编译应该可以通过。问一句,你是用visual studio系列在编程吗?如果是vs,它有语法排错功能,会对错误的代码进行着色提示,一看就知道哪行有语法或拼写错误。但是即使是没有这些排错功能,你也可以对代码进行调试等方法排错,不至于写段代码出现这么多错误而不知道如何修改。我看你对c++语法还是有所了解的,对这些排查手段也应该要有所了解才对。
其他回答
暂无其它回答!