[C/C++]函数如何返回struct或class对象
摘要:本文写于我对C++尚不是很了解的时期,所以文中存在很多漏洞。为了避免浪费你的时间,请绕道!所有的C、C++教科书都警告我们:不要通过函数来返回struct或 class对象,否则会造成内存复制以及复制构造函数的调用,降低性能。相信这句话已经成为了一个常识,大家都能牢记于心。然而,有时候我们不得不违反这个警告,例如,通过函数获取一个std::string对象(以个人的经验而言,这种情况是很常见的,我经常要通过函数创建一个新的对象)。不知道从什么时候起,当我面对这种情况的时候会通过引用来获取这个对象,像这样:std::string GetString();std::string& str
阅读全文
posted @
2011-09-25 16:28
Zplutor
阅读(20785)
推荐(2) 编辑
[C++]实现委托模型
摘要:我对.Net的委托模型印象很深刻,使用委托,可以快速实现观察者模式,免去写很多繁杂重复的代码。遗憾的是,C++并没有提供这样的模型,为了达到相似的目的,需要继承一个类并重写virtual方法,这种做法需要写很多代码,效率比较低下(使用过MFC的应该都能体会到)。然而,在强大的C++面前,没有什么是不可能的,已经有很多人针对这个问题进行过研究,并且实现了各种委托模型,其中最著名的就是FastDelegate,这个模型在《Member Function Pointers and the Fastest Possible C++ Delegates》中提出(原文地址:http://www.codep
阅读全文
posted @
2011-09-17 18:55
Zplutor
阅读(16421)
推荐(5) 编辑