社区
C++ 语言
帖子详情
关于拷贝构造函数的疑问
w66187564
2008-03-01 12:59:41
拷贝构造函数的参数为什么必须是对象的引用,而不能直接是对象?
...全文
100
10
打赏
收藏
关于拷贝构造函数的疑问
拷贝构造函数的参数为什么必须是对象的引用,而不能直接是对象?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Chappell
2008-03-01
打赏
举报
回复
如果是直接对象参数会导致调用拷贝构造函数。
无限递归,最后栈溢出,程序退出。
michney
2008-03-01
打赏
举报
回复
栈溢出嘛
你传参的时候,要根据实参构造副本,要掉拷贝构造函数(自身无限递归),最后溢出
visame
2008-03-01
打赏
举报
回复
对,如果不是引用就是无限递归
你需要明白函数传参(非引用的话)的时候是拷贝传递的,所以要调用拷贝构造函数。
RMS_forever
2008-03-01
打赏
举报
回复
是无限递归,每次编译器都会产生一个临时对象,直到内存耗尽
dragonfly2008
2008-03-01
打赏
举报
回复
在按值传递时,本身传递对象副本,就调用了拷贝构造函数
结果反复调用,造成无限循环
hityct1
2008-03-01
打赏
举报
回复
mark
iambic
2008-03-01
打赏
举报
回复
按值传参需要调用拷贝构造函数。
xbt746
2008-03-01
打赏
举报
回复
又学习了东西
a013231
2008-03-01
打赏
举报
回复
class Foo
{
public:
Foo(Foo f) {}//如何把实参复制给形参?调用Foo::Foo(Foo)?那好,无限递归吧.
};
dubiousway
2008-03-01
打赏
举报
回复
如果不是引用,那就会形成无限嵌套,无限循环。你仔细想一下就明白了
相关推荐
如何分辨
拷贝构造函数
和赋值操作符两种操作
看到关于拷贝控制的内容的时候对于
拷贝构造函数
(又称复制构造函数)和用赋值操作符来对对象赋值的两种操作产生了
疑问
,到底什么时候是属于
拷贝构造函数
的范围,又有哪些时候是属于赋值构造函数的范围呢? 首先
拷贝构造函数
是属于构造函数的一种,如果我们没有为一个类定义
拷贝构造函数
的话,编译器会为我们隐式定义一个,与合成构造函数不同的是,即使我们定义了其他的构造函数,编译器因为会为我们合成一个
拷贝构造函数
(
Cpp
拷贝构造函数
发生的时刻(还存在
疑问
)
如果一个构造函数的第一个参数是自身类类型的引用,且任何额外参数都有默认值,则此构造函数是
拷贝构造函数
class numbered{ public : numbered(){//构造函数 mysn = 0; } numbered(const numbered& inputOne){//
拷贝构造函数
mysn =...
C++深度解析 经典问题解析三 --- 赋值操作符重载 和
拷贝构造函数
,string类的
疑问
(35)
C++深度解析 经典问题解析三 --- 赋值操作符重载 和
拷贝构造函数
,string类的
疑问
(35) 赋值操作符 什么时候需要重载赋值操作符? 编译器是否提供默认的赋值操作? 关于赋值的
疑问
: 编译器为每个类默认重载了赋值操作符。 默认的赋值操作符仅完成浅拷贝。 当需要进行深拷贝时必须重载赋值操作符。 赋值操作符与
拷贝构造函数
有相同的存在意义。 示例程序:(默...
C++中的赋值操作符重载和
拷贝构造函数
1,关于赋值的
疑问
: 1,什么时候需要重载赋值操作符? 2,编译器是否提供默认的赋值操作符? 2,关于赋值的
疑问
: 1,编译器为每个类默认重载了赋值操作符; 1,意味着同类型的类对象可以相互赋值; 2,默认的赋值操作符仅完成浅拷贝; 3,当需要进行深拷贝时必须重载赋值操作符; 1,和
拷贝构造函数
...
深入理解c++之struct构造函数
是否曾好奇struct定义的数据结构类型,当我拷贝构造时,或者赋值操作时会发生什么?倘若我结构中存在指针引用对象时,又能否正确处理?带着这些
疑问
,我们来对struct的构造函数进行研究,以解答以下几个
疑问
: 1) 何时编译器会自动为struct合成构造函数 2) 如何能保证携带指针引用对象的struct正确拷贝或拷贝构造 让我们...
发帖
C++ 语言
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
6.3w+
社区成员
25.0w+
社区内容
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
帖子事件
创建了帖子
2008-03-01 12:59
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下