怎么给数组写构造函数?

来源:百度知道 编辑:UC知道 时间:2024/06/27 03:24:35
class Student
{
public:
Student( int a, char b, char c):num(a),name(b),sex(c){}
virtual void get_value()
{

}
virtual void display()
{

}
protected:
int num;
char name[10];
char sex;
};

//Student( int a, char b, char c):num(a),name(b),sex(c){}
这样行吗,b可是数组啊!!!
//解决了,3Q~~~
第一个构造
Student( int a, char *b, char c)
{
num=a;
for(int i=0;i<10;i++)
name[i]=*b++;
sex=c;
}
第二个构造
Student1( int a, char *b, char c, int d,char *e):Student(a,b,c),age(d)
{

for(int i=0;i<10;i++)
addr[i]=*e++;

}
但也要希望大家指点迷经~!

名字name是字符串,应该使用strcpy进行拷贝。如下:
Student( int a, char *b, char c)
{
num=a;
strcpy(name, b);
sex=c;
}

或者将name 改为std::string类型的,就可以直接这样写了:
Student( int a, char *b, char c):num(a),name(b),sex(c){}

字符串和字符的数字的差别:字符串总以\0为终止。