C++简单程序出问题!
来源:百度知道 编辑:UC知道 时间:2024/07/01 00:39:45
#include<iostream>
using namespace std;
class Person
{
int age;
string sex;
double height;
double weight;
string name;
};
class Classmate: public Person
{
char classname[9];
char school[9];
void setclassname(char *p){classname=p;}
};
class Colleague: public Person
{
char organization[9];
char department[9];
};
class Leader: public Colleague
{
}
main()
{
char u[9]="happy";
Colleague a;
a.setclassname(u);
}
请问问题出在哪了啊!怎么修改啊
using namespace std;
class Person
{
int age;
string sex;
double height;
double weight;
string name;
};
class Classmate: public Person
{
char classname[9];
char school[9];
void setclassname(char *p){classname=p;}
};
class Colleague: public Person
{
char organization[9];
char department[9];
};
class Leader: public Colleague
{
}
main()
{
char u[9]="happy";
Colleague a;
a.setclassname(u);
}
请问问题出在哪了啊!怎么修改啊
#include<iostream>
using namespace std;
class Person
{
int age;
string sex;
double height;
double weight;
string name;
};
class Classmate: public Person
{
private:
char *classname;
char school[9];
public:
void setclassname(char *p){classname=p;}
};
class Colleague: public Classmate
{
char organization[9];
char department[9];
};
class Leader: public Colleague
{
};
int main()
{
char *u="happy";
Colleague a;
a.setclassname(u);
return 0;
}
---------------------------
修改完毕。问题如楼上所示。自己研究研究下。加油
classname在类中是一个字符数组,不是一个指针,它是不能被重新赋值的!
可以把它定义成指针,或者拷贝字符串给它。
Colleague类中也没有setclassname这个函数,基类person里面也没有,根本不可以调用!
修改如下
class Classmate: public Person
{
char *classname;
char school[9];
void setclassname(char *p){c