设为首页 加入收藏

TOP

3.3.1 通过引用来传递和返回对象
2013-10-07 15:30:40 来源: 作者: 【 】 浏览:67
Tags:3.3.1 通过 用来 传递 返回 对象

3.3.1   通过引用来传递和返回对象

和其他类型的变量一样,对象既可以采用传值方式(pass by value)传递给函数,也可以采用引用方式作为函数的返回值。除非迫不得已,一般来说应该采用引用方式进行对象的传递和返回,而不要采用传值的方式来进行。这是因为通过传值方式来传递和返回对象时会降低效率并将面临对象间的拷贝操作,从而使数据增大,浪费内存。而采用引用方式,则完全可以避免上述弊病。

从效率上看,传递一个指向对象的指针可收到与引用方式相同的效果,但引用方式的语法要简练得多。

例3-14

程序清单3-3   通过传址来传递和返回对象

 

程序清单3-3使用了传址方式来传送和返回对象。对象c1通过传址而非传值方式从main函数传递给函数f,这就意味着函数f修改的是cl的实际内容,而非cl的一个临时拷贝(译注:若采用传值方式,该临时拷贝在参数赋值时生成)。函数g调用静态对象c3的set成员,然后返回其引用。请务必注意,g返回的是静态对象的引用而不是局部对象的引用,这一点是非常重要的,如果c3是局部对象,那么g返回给调用者(此例中为main)的那个引用将参考到一个已经不存在的对象:

 

一般来说不要以引用方式在函数中返回一个局部auto变量。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇3.3.2 const类型参数的对象引用 下一篇3.1.7 在程序中使用类

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C语言结构体怎么直接 (2025-12-24 17:19:44)
·为什么指针作为c语言 (2025-12-24 17:19:41)
·如何较为深入的理解c (2025-12-24 17:19:38)
·Announcing October (2025-12-24 15:18:16)
·MySQL有什么推荐的学 (2025-12-24 15:18:13)