首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求大神击救啊为什么就是只有那么一个类的变量不能赋值,其他的都可以啊为什么啊

2013-12-10 
求大神打救啊,为什么就是只有那么一个类的变量不能赋值,其他的都可以啊!!为什么啊啊啊#includeiostreamu

求大神打救啊,为什么就是只有那么一个类的变量不能赋值,其他的都可以啊!!为什么啊啊啊
#include<iostream>
using namespace std;
class Person{
private:
char name[6],sex[6];
int age;
public:
Person(){};
Person(char *na,int ag,char *se){strcpy(name,na);age=ag;strcpy(sex,se);}
void show (){cout<<name<<age<<sex<<endl;}
char *getname(){return name;}
char *getsex(){return sex;}
int getage(){return age;}

};

class Teacher:virtual public Person{
private:
char  title[10];
public :
Teacher(){};
char  *gettitle(){return title;}
Teacher(char *na,int ag,char *se,char *t):Person(na,ag,se)
{strcpy(title,t);}
void show(){cout<<getname()<<getage()<<getsex()<<title<<endl;}
};

class Cadre:virtual public Person{
private:
char post[10];
public :
Cadre(){};
void  setpost(char *p){strcpy(post,p);}
char *getpost(){return post;}
Cadre(char *na,int ag,char *se,char *p):Person(na,ag,se)
{strcpy(post,p);}
void show(){cout<<getname()<<getage()<<getsex()<<post<<endl;}
};

class TeacherCadre: public Cadre, public Teacher{
private:
double wage;
public :
TeacherCadre(){};
TeacherCadre(char *na,int ag,char *se,char *t,char *p,double w):Teacher(na,ag,se,t),Person(na,ag,se)
{strcpy(getpost(),p);wage=w;}
void show(){cout<<getname()<<getage()<<getsex()<<gettitle()<<getpost()<<wage<<endl;}
};

void main()
{
 
Person P("Merlin",21,"male");
P.show();

Teacher TE("ZHENG",100,"male","math");
    TE.show();

Cadre C ("JI",15,"female","assitance");
C.show();

    TeacherCadre TC("MAO",100,"male","英语","abc",9999);
TC.show();

}
错误的地方:

就是Cadre类的C对象的age无法赋值!!!
[解决办法]
char name[6],sex[6];

Cadre C ("JI",15,"female","assitance");
---》Person(char *na,int ag,char *se){strcpy(name,na);age=ag;strcpy(sex,se);}

strcpy(sex,se)的时候
se = "female" 包含结束是7个字节,把后面的age给覆盖掉了。


[解决办法]
楼上正解,char name[8],sex[6];。把你的name[]设置大一号

热点排行