社区
C++ 语言
帖子详情
关于拷贝构造函数的使用情况
Edwardyewei
2008-06-17 08:42:01
在下面的代码的main函数中类Copy的拷贝构造函数被调用了多少次
Copy f(Copy c)
{
Copy temp(c);
return temp;
}
main()
{
Copy c1;
Copy c2=f(c1);
}
A. 2 B. 3 C. 4 D. 5
我知道c1代入函数做参数使用了一次,Copy temp(c)一次,还有哪儿?
...全文
62
7
打赏
收藏
关于拷贝构造函数的使用情况
在下面的代码的main函数中类Copy的拷贝构造函数被调用了多少次 Copy f(Copy c) { Copy temp(c); return temp; } main() { Copy c1; Copy c2=f(c1); } A. 2 B. 3 C. 4 D. 5 我知道c1代入函数做参数使用了一次,Copy temp(c)一次,还有哪儿?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Vitin
2008-06-17
打赏
举报
回复
因为是否优化,是有编译器决定的。
当然在某个具体的编译器上(以及确定的配置),调用次数是固定的。
CHARLISW
2008-06-17
打赏
举报
回复
怎么会有最多和最少,调用了几次就是几次
3
Vitin
2008-06-17
打赏
举报
回复
最多四次,最少两次。
1、构造 c
2、构造 temp // 通过“具名返回值优化”,可以去掉
3、构造 f 的返回值 // 通过“返回值优化”,可以去掉
4、构造 c2
太乙
2008-06-17
打赏
举报
回复
Copy c2=f(c1); 这等号不算一次??
胡椒爸爸
2008-06-17
打赏
举报
回复
一般编译器都会有返回值优化的,所以就是你说的这两次了
ckt
2008-06-17
打赏
举报
回复
普通情况下
return temp; // 也会调用
珍惜生命远离CPP
2008-06-17
打赏
举报
回复
如果有返回值优化,那么通常就这2次.
300道C++题目
300道C++题目
c++的默认
拷贝构造函数
,从深度拷贝和浅拷贝说起
1. c++类的默认
拷贝构造函数
的弊端c++类的中有两个特殊的构造函数,(1)无参构造函数,(2)
拷贝构造函数
。它们的特殊之处在于: (1)当类中没有定义任何构造函数时,编译器会默认提供一个无参构造函数且其函数体为空; (2)当类中没有定义
拷贝构造函数
时,编译器会默认提供一个
拷贝构造函数
,进行成员变量之间的拷贝。(这个拷贝操作是浅拷贝)这里只讲
拷贝构造函数
。在c语言中,int a = 5; /
拷贝构造函数
与赋值构造函数
拷贝构造函数
与赋值构造函数 在C++中,如果要创建一个新的类,并用已有的类来给它附初值。就要用到
拷贝构造函数
,
拷贝构造函数
又分为两种。 1.合成的
拷贝构造函数
在你没有定义自己的
拷贝构造函数
而又调用了
拷贝构造函数
时,编译器会调用合成的
拷贝构造函数
来进行赋值。合成的
拷贝构造函数
进行的拷贝叫做浅拷贝(又叫位拷贝)。在大多数
情况
下,
使用
合成的
拷贝构造函数
也不会出错。但要是你的类的数据成员中又指针或分配了内存。那合成的
拷贝构造函数
就不适用这种
情况
。 如下错误代码: #include <iostream>
构造函数与
拷贝构造函数
拷贝构造函数
和构造函数不能分开说,他们都是初始化对象的一种方法。但是我们这里用构造函数辅助说明
拷贝构造函数
,主要说说
拷贝构造函数
的声明,用途和
使用
注意事项。 众所周知,构造函数是一个初始化类对象的函数,即使不显示调用,编译器也会隐式调用构造函数初始化类对象。同样的,
拷贝构造函数
是一种特殊的构造函数,目的也是初始化类对象,同样在不声明的
情况
下也会隐式调用该函数。而隐式调用
拷贝构造函数
的时候,我们称...
子类
拷贝构造函数
会调用父类
拷贝构造函数
吗?
1.编译器提供的默认子类
拷贝构造函数
会调用父类
拷贝构造函数
。 2.重写的子类
拷贝构造函数
默认不会调用父类的
拷贝构造函数
,而是调用父类默认构造函数。 3.重写的子类
拷贝构造函数
时应当显式的告诉编译器去调用父类的
拷贝构造函数
去构造父类,从而避免调用子类
拷贝构造函数
去创建一个对象时,导致子类中包含父类的那部分数据丢失的
情况
发生。具体做法为:Child(const Child &other) : Parent(other);
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章