C++ 复制构造函数的形参是与函数返回对象
函数返回内部局部对象,例如:
A a(20); // 调用自定义构造函数构造a对象函数调用时,自动调用复制构造函数的形参是赋值给左端对象.例如:
// 调用复制构造函数的形参是,把fun1()的返回值拷贝给a1. 本语句结束调用析构函数,销毁函数返回对象
A a(20); // 调用自定义构造函数构造a对象 // 【非法】虽然程序能执行,但是返回一个局部变量的地址是不可取的 A a(30); // 调用自定义构造函数构慥a对象 // 调用复制构造函数的形参是,把fun1()的返回值拷贝给a1. 本语句结束调用析构函数,销毁函数返回对象(n=20) A aa; // 调用默认构造函数构造aa对象 // note: 非常量引用只能绑定到左值
自定义构造函数:20 fun1()中构造局部对象a
复制构造函数的形参是:20 fun1()返回对象复制给a1
析构函数:20 销毁函数返回对象
默认构造函數:0 构造aa对象
析构函数:40 销毁aa对象
析构函数:30 销毁a1对象
发布了17 篇原创文章 · 获赞 3 · 访问量 1万+