3个回答
展开全部
拷贝构造函数 顾名思义 它也是构造函数中的一种 是通过一个已经存在的对象去构造出一个还没有存在的对象 就是定义那个还没有存在的对象 而对象之间的要赋值 就说明 被赋值的对象是之前已经存在的了 现在要改变它自身的数据成员 下面举个例子:
class A
{。。。};
int main()
{
A a1;
A a2 = a1;(1)
a2 = a1;(2)
}
(1)a2的构造调用了拷贝构造函数
(2)就是要把a2赋值
那么普通的类对象是不能通过“=”进行赋值操作的 唯有的方法 一是你自己写成员函数 而更多的 是将“=”操作符重载 从而达到赋值的目的。
“=”重载 网上有很多例子 随便搜搜就知道了 关键是要搞清楚拷贝构造函数和“=”操作符重载的区别。
class A
{。。。};
int main()
{
A a1;
A a2 = a1;(1)
a2 = a1;(2)
}
(1)a2的构造调用了拷贝构造函数
(2)就是要把a2赋值
那么普通的类对象是不能通过“=”进行赋值操作的 唯有的方法 一是你自己写成员函数 而更多的 是将“=”操作符重载 从而达到赋值的目的。
“=”重载 网上有很多例子 随便搜搜就知道了 关键是要搞清楚拷贝构造函数和“=”操作符重载的区别。
展开全部
这一题应该考的是拷贝构造函数与赋值操作符重载函数的区别:
首先,拷贝构造函数的调用时机存在以下三种情况:
(1)类对象的初始化;
(2)类对象作为函数形参以传值方式传递;
(3)类对象作为函数的返回值以传值方式返回。
注:这里要强调一下,对于临时类对象本来也应该调用拷贝构造函数,但有的编译器会做优化处理,不调用拷贝构造函数。答题时不用考虑。。。
函数实参传递和返回值的语义就等同于初始化。
所以拷贝构造函数用于用一个已存在的类对象去构造另一个新的对象;
而赋值操作符重载函数则是用一个已存在的类对象去赋值给另一个已存在的对象,即只更新其内容或值,而不是像拷贝构造函数那样去构造一个新的对象。。。
首先,拷贝构造函数的调用时机存在以下三种情况:
(1)类对象的初始化;
(2)类对象作为函数形参以传值方式传递;
(3)类对象作为函数的返回值以传值方式返回。
注:这里要强调一下,对于临时类对象本来也应该调用拷贝构造函数,但有的编译器会做优化处理,不调用拷贝构造函数。答题时不用考虑。。。
函数实参传递和返回值的语义就等同于初始化。
所以拷贝构造函数用于用一个已存在的类对象去构造另一个新的对象;
而赋值操作符重载函数则是用一个已存在的类对象去赋值给另一个已存在的对象,即只更新其内容或值,而不是像拷贝构造函数那样去构造一个新的对象。。。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
赋值构造函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询