77问答网
所有问题
当前搜索:
一个类必须重载赋值和拷贝构造函数
求C++大神:写了
复制构造函数
还要不要
重载赋值
运算符?谢谢~
答:
顾名思义,
复制构造函数
是构造函数,所以它
必须
用来构造对象,同时用
一个
已经创建好的对象来初始化它。而
赋值
运算符则是在对象建好之后复制一个对象的状态到另一个对象中,这里两个对象都必须在赋值之前创建完毕。比如:class A{...};int main() { A a, c;A b(a); //copy constructor,创...
拷贝构造函数
的
赋值重载
答:
因此,
包含动态分配成员的类除提供拷贝构造函数外,还应该考虑重载"="赋值操作符号
。 拷贝构造函数和赋值函数的功能是相同的,为了不造成重复代码,
c++关于
拷贝构造函数
和等号的
重载
答:
一个类
的构造函数只有在定义该类的对象时候才会调用,而且每个对象只有一次调用构造函数的机会,MyClass obj3 = obj1,这个是在定义对象时候的
赋值
,所以调用的是
copy构造函数
。MyClass obj3 = obj1 等价于MyClass obj3(obj1),这个判断应该是正确的。MyClass obj3;obj3 = obj1;这样就不是属于...
c++有
拷贝构造函数
,为什么还需要=运算符
重载
?
答:
copy构造函数
是在对象构造的时候起作用的,如已经定义了类A A a1;A a2(a1);=号运算符的
重载
,是在对象已经有了的时候对对象进行
赋值
的时候用的。如已经定义了类A A a1;A a2;a2=a1;
如果date是
个类
,date1是
一个
已定义的date类对象,那么用date date2=date...
答:
可以,但是需要注意
重载
=操作符
和拷贝构造函数
。
C++默认的
复制构造函数
是怎么走的?
答:
这是因为类
有一个
默认的
赋值
操作符,虽然你没写,编译器已经为你自动生成了,大概如下:A& operator=(A& a){ this->XXX = a.XXX; //把a的成员变量值都拷贝给这个对象的成员变量 ...return *this;} ps.如果你的类里面有指针成员变量,你就
必须
重写
拷贝构造函数
和赋值操作符。因为你不重写的话...
在C++中
一个类
可以含有多个
构造函数
吗?
答:
可以啊,
重载
的概念最初就是为了构造函数提出来的
一个类
就算自己没定义构造函数,编译器也会自动提供两个构造函数:默认构造函数
和复制构造函数
但是析构函数只能有一个
下列有关
拷贝构造函数
的描述中错误的是()。
答:
下列有关
拷贝构造函数
的描述中错误的是()。A.拷贝构造函数是一种构造函数 B.拷贝构造函数与一般的构造函数一样,可以
重载
C.每
一个类
中都
必须
有一个拷贝构造函数 D.拷贝构造函数的功能是用一个已知对象去初始化一个正在创建的对象 正确答案:B ...
...给该类的另
一个
对象时,为什么不调用
拷贝构造函数
?
答:
这里的区别还是比较细节的,需要仔细理解 如果是创建和
赋值
在
一个
语句,那么调用的是
构造函数
,例如:A a1;A a2 = a1;//调用
拷贝构造
,如果没有实现,那么默认按内存拷贝 其实这等同于A a2(a1);如果不是这种情况,比如:A a3;a3 = a1;//调用
重载
的=操作符,如果没有实现,也是按内存拷贝。
c++中如何用cin和
构造函数
给类成员
赋值
?
答:
1、构造函数 是一种特殊的方法 主要用来在创建对象时初始化对象 即为对象成员变量赋初始值.
一个类
也可以有多个构造函数,用来初始化不同形式的类。2、
拷贝函数
是特殊的构造函数,用来完成对象初始化,即定义时
赋值
,下面程序中有详解。如果没有定义,系统会调用默认的
拷贝构造函数
,但此函数不能处理深...
1
2
3
4
5
6
7
8
9
10
涓嬩竴椤
灏鹃〉
其他人还搜
必须重载赋值和拷贝构造函数
拷贝构造函数和复制构造函数
复制构造函数和拷贝构造函数区别
拷贝构造函数与赋值运算符函数讲解
赋值运算符和拷贝构造函数的区别
拷贝构造函数与赋值运算符有何不同
赋值调用构造函数吗
拷贝赋值函数
构造函数可以重载吗