我照着书上写了个程序,编译有错误。
#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(name1,nam);
    sex=s;
score=sco;
   }
   void display1()
   {cout<<"name:"<<name1<<endl;
    cout<<"sex:"<<sex<<endl;
cout<<"score:"<<score<<endl;
   }
protected:
string name1;
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:
flaot wage;
};
int main()
{Graduate grad1("Wang-li",24,'f',"assistant",89.5,1234.5);
 grad1.show();
 return 0;
}
红色的语句有错误。
错误提示:24 D:\C\1.cpp cannot convert `std::string' to `char*' for argument `1' to ` char* strcpy(char*, const char*)' 
请高手指教,应该如何改正?谢谢!

解决方案 »

  1.   


    #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(const string &str,char s,float sco):name1(str)
    {
    sex=s;
    score=sco;
    }
    void display1()
    {
    cout<<"name:"<<name1<<endl;
    cout<<"sex:"<<sex<<endl;
    cout<<"score:"<<score<<endl;
    }
    protected:
    string name1;
    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 grad1("Wang-li",24,'f',"assistant",89.5,1234.5);
    grad1.show();
    return 0;
    }