c – 为什么以下代码也会调用复制构造函数?
发布时间:2020-12-16 09:42:11 所属栏目:百科 来源:网络整理
导读:为什么当g_Fun()执行返回temp时它会调用复制构造函数? class CExample {private: int a;public: CExample(int b) { a = b; } CExample(const CExample C) { a = C.a; cout"copy"endl; } void Show () { coutaendl; }};CExample g_Fun(){ CExample temp(0);
为什么当g_Fun()执行返回temp时它会调用复制构造函数?
class CExample { private: int a; public: CExample(int b) { a = b; } CExample(const CExample& C) { a = C.a; cout<<"copy"<<endl; } void Show () { cout<<a<<endl; } }; CExample g_Fun() { CExample temp(0); return temp; } int main() { g_Fun(); return 0; } 解决方法
因为您按值返回,但请注意,由于
RVO,因此不需要调用复制构造函数.
根据优化级别,可能会也可能不会调用复制程序 – 不要依赖它们. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- xsd – XML模式;有效属性值列表中的多个
- ruby-on-rails – 具有良好RSpec使用的开源Rails项目
- ruby-on-rails – 如何通过Shopify API删除Shopify Webhook
- Ruby默认赋值(|| =)vs Rescuing error
- C#Windows Forms 使MessageBox顶层显示--xdd
- Jsoncpp在linux中的安装、编译及其简单应用
- Swift-3.0相对于2.3语法的一些变化
- 【Oracle】INSERT INTO SELECT语句和SELECT INTO FROM语句的
- Swift:用UICollectionView整一个瀑布流
- ruby-on-rails – 轨道中单个形式的多个孩子