帮帮忙老是出错,头疼

发布时间:2019-07-31 09:39:35

//有一个学生类student,包括学生姓名、成绩(私有变量),并声明教师类有教师工号,通过友元函数,友元类,友元成员函数,在教师类中显示学生成绩。

#include<iostream.h>

#include<string.h>

class student{

private:

char *name;

int grade;

public:

student(char *n,int g){

name=new char[strlen(n)+1];

strcpy(name,n);

grade=g;

}

    friend void display(student &a);

friend class teacher;

};

void display(student &a){

cout<<""<<a.name<<""<<a.grade<<endl;

}

class teacher{

private:

char* name1;

double grade1;

public:

teacher(char* n1,double g1){

name1=new char[strlen(n1)+1];

strcpy(name1,n1);

grade1=g1;

}

void play(){

cout<<name1<<grade1;

}

};

int main(){

teacher t('jj',4.4);

t.play();

return 0;

}

运行就成这样

E:\00\1.cpp(36) : error C2664: '__thiscall teacher::teacher(char *,double)' : cannot convert parameter 1 from 'const int' to 'char *'

        Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast

执行 cl.exe 时出错.


补充://有一个学生类student,包括学生姓名、成绩(私有变量),并声明教师类有教师工号,通过友元函数,友元类,友元成员函数,在教师类中显示学生成绩。#include<iostream>#include<string>using namespace std;class student{private:char *name;int grade;public:student(char *n,int g):name(n),grade(g){} friend void display(student &a);};void display(student &a){cout<<""<<a.name<<""<<a.grade<<endl;}class teacher{private:char* name1;double grade1;public:teacher(char* n1,double g1):name1(n1),grade1(g1){};friend class student;void play(){cout<<name1<<grade1;}};int main(){teacher t('jj',4.4);t.play();return 0;}我的改进但错误还是相同的

推荐回答

还没有选出推荐答案,请稍候访问或查看其他回答!
以上问题属网友观点,不代表本站立场,仅供参考!