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);
}
请问问题出在哪了啊!怎么修改啊

#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