公式编译未通过_如何编译通过

原问题:如何编译通过
分类:编程开发 > 最后更新时间:【2016-12-14 21:55:24】
问题补充:

#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++语法还是有所了解的,对这些排查手段也应该要有所了解才对。
    最佳答案由网友  听枫2005  提供
  • 公告: 为响应国家净网行动,部分内容已经删除,感谢网友理解。
    8

    分享到:

    其他回答

    暂无其它回答!

      推荐