一个奇怪的问题
#include <iostream>#include <string.h>
using namespace std;
class person
{
private:
public:
char name[10];
void print();
person(char *);
};
class student:public person
{
private:
public:
char sex[2];
char professional[10];
student(char *,char *,char *);
void print();
};
person::person(char *n)
{
strcpy(name,n);
}
void person::print()
{
cout<<"name:"<<name<<endl;
}
student::student(char *xm,char *xb,char *p):person(xm)
{
strcpy(sex,xb);
strcpy(professional,p);
}
void student::print()
{
cout<<"name:"<<name<<endl;
cout<<"sex:"<<sex<<endl;
cout<<"professional:"<<professional<<endl;
}
void main()
{
person p("ww");
p.print();
student s("ww" , "女" , "计算机应用" );
s.print();
}
大家请看红的部分。为什么我初始化的时候会出现如图所在的错误。而如果我吧性别换成单个的字符不用数组的时候为什么又是正常的呢?还有就是我的性别只定义了2个长度为什么出现那么长不会溢出了?请各位帮帮忙解释一下哈!