首页 > 编程语言 > 详细

彻底搞懂c++参数传递与返回

时间:2020-05-19 09:29:01      阅读:45      评论:0      收藏:0      [点我收藏+]

在c++中,对象作为参数传入,赋值,返回对象。都是拷贝对象。

即修改一处,另一处不会被修改,这些对象的指针地址都是不一样的

在函数结束时,函数内创建的对象就会释放,返回对象是返回一个新的拷贝(相当于在调用层创建这个对象)。

为了减少拷贝次数,可以将参数作为引用传入,在函数内操作这个参数时,相当于操作传入的那块内存

内部如果需要存储这个变量,需要使用指针的方式,如果直接使用对象赋值,则会发生拷贝

class MyClass2
{
public:
    MyClass *dd;
    void gh(MyClass& d) {
        dd = &d;
        cout << "传入的地址" << &d << endl;
        cout << "指针地址" << dd << endl;
        //内存地址输出结果一致,可以直接操作内部指针dd来改变外部对象
    }
};

class MyClass2
{
public:
    MyClass dd;
    void gh(MyClass& d) {
        dd = d;
        cout << "传入的地址" << &d << endl;
        cout << "内部地址" << dd << endl;
        //内存地址不同,操作内部对象dd不会影响传入的对象d
    }
};

 

彻底搞懂c++参数传递与返回

原文:https://www.cnblogs.com/jiebanren/p/12914507.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!