发布网友 发布时间:2024-09-29 04:05
共1个回答
热心网友 时间:2024-10-24 20:44
因为:这是(有参)构造函数,构造函数的名字必须与类名相同,所以必须用Book。
voidsetbook(constchar*str1,constchar*str2,constintnum)/*这是什么,怎么它的大括弧里给上面的一样,好像去掉也没有关系,程序也是对的。*/——这是设置类数据成员值的函数,其函数体一般都与有参构造函数相同。如果去掉这个函数,则所创建的对象就无法改变其成员的值了。
含义
如果在前两种情况不使用拷贝构造函数的时候,就会导致一个指针指向已经被删除的内存空间。对于第三种情况来说,初始化和赋值的不同含义是拷贝构造函数调用的原因。事实上,拷贝构造函数是由普通构造函数和赋值操作符共同实现的。描述拷贝构造函数和赋值运算符的异同的参考资料有很多。