对象数组C++初始化问题

定义一个类 class student;
student *p=new student[2];
给student[0]初始化;
怎么把p[0]复制给p[1],
如果直接p[1]=p[0];的话会出现错误,应该是指针问题,我觉得是深度复制问题,可是我不知道怎么用。求大神

第1个回答  2011-10-20
int main()

...........
student[0]={ 类中定义的数据用逗号隔开 如果字符用引号隔开};
...........


复制 *p[1]=*p[0]
第2个回答  2011-10-20
类对象不能直接p[1]=p[0];必须重载=;然后在重载函数进行复制的内容;用memcpy吧
比如:
memcpy(&p[0],&p[1],sizeof(student));追问

函数重载不是有默认重载函数吗,就是构造函数一样。如果p不是指针的话好像可以,a(类名)=b(类名)就可以

追答

不是这样简单的,如果对象a 和对象b可以用=来赋值;表示这个类里面所有的成员变量都是可以用=的,
一个类对象是否可以用=关键在与其类成员变量是否都能用=

追问

谢谢,你所说的成员变量是指私有成员吗?
你说的memcpy(&p[0],&p[1],sizeof(student));
student(student &p[0],student &p[1])
{memcpy(&p[0],&p[1],sizeof(student))}放在这里面用吗?第一次见这函数,不好意思

追答

我的意思是 如果想把p[0]对象的内容赋值给p[1]对象,可以调用这个函数来实现,这个函数是内存拷贝memcpy(源对象地址,目标对象地址,拷贝的内容长度);

追问

emcpy' : cannot convert parameter 1 from 'class student' to 'void *'。。。

追答

把你写的帖出来看看

本回答被提问者采纳
相似回答
大家正在搜