C++ 各种关键字

 类的对象作为函数形参

bool fini_stream_handler(stream_event_fact* fact)

我的代码里有很多这样的函数,以对象指针作为函数形参。对象的传递方式有值传递和地址传递两种(地址传递包括指针传递和引用传递)

     值传递

    bool fini_stream_handler(stream_event_fact  fact)

    值传递不会改变实参的数据。

     对象指针作函数的参数

     bool fini_stream_handler(stream_event_fact* fact)

    使用对象指针作为函数参数要经使用对象作函数参数更普遍一些。因为使用对象指针作函数参数有如下两点好处:

    (1) 实现传址调用。可在被调用函数中改变调用函数的参数对象的值,实现函数之间的信息传递。

    (2) 使用对象指针实参仅将对象的地址值传给形参,而不进行副本的拷贝,这样可以提高运行效率,减少时空开销。

    当形参是指向对象指针时,调用函数的对应实参应该是某个对象的地址值,一般使用&后加对象名。下面举一例子说明对象指针作函数参数。

    对象引用作函数参数

    bool fini_stream_handler(stream_event_fact & fact)

    在实际中,使用对象引用作函数参数要比使用对象指针作函数更普遍,这是因为使用对象引用作函数参数具有用对象指针作函数参数的优点,而用对象引用作函数参数将更简单,更直接。所以,在C++编程中,人们喜欢用对象引用作函数参数。

而在C++中有三种情况需要调用复制构造函数。

  1) 一个对象作为函数参数,以值传递的方式传入函数体

  2) 一个对象作为函数返回值,以值传递的方式从函数返回

  3) 一个对象用于给另外一个对象进行初始化(常称为复制初始化

因此值传递时调用复制构造函数,地址传递时不调用复制构造函数。

参考博客

http://www.cnblogs.com/lihuidashen/p/4383038.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值