Effective C++回顾(7)

原创 2006年05月25日 23:07:00

条款11:如果class内动态配置有内存,请为此class声明一个copy constructor和一个assignment运算符

在内存分配的时候,增加copyassignment运算符没有问题,可是在很多情况下仅仅通过增加copyassignment还不能完成任务,我自己就碰到过这种问题:

class CMyLibrary

{

public:

       CMyLibrary(LPCTSTR lpszLibName)

{

       m_hInst = ::LoadLibrary(lpszLibName);

}

~CMyLibrary()

{

       if (m_hInst)

{

       ::FreeLibrary(m_hInst);

}

}

private:

       HINSTANCE m_hInst;

}

实现这个类用于管理DLL,在这种情况下就很难实现copyassignment功能,因为我们还没有办法Copy出一个HINSTANCE。我们也许可以采用attach功能的实现,在copyassignment函数中传入的时候没有const值,允许copyassignment函数修改其值。这当然是一种方法,终归不是最优方法,不仅失去了copyassignment操作符的原意,而且还失去了强大的const作用(犯了第一条)。后来我自己实现了一个share_library类,在这个share_library类中采用引用计数来管理HINSTANCE句柄,在每次调用copyassignment的功能的时候,自身的引用计数减1,把传入值的引用计数加1,类似于COM的设计,而且这样工作的非常好。

 

待续……

Effective Modern C++ 条款7 创建对象时区分( )和{ }

Effective Modern C++ 条款7
  • big_yellow_duck
  • big_yellow_duck
  • 2016年08月13日 22:09
  • 847

Effective C++ 7

7.预先准备好内存不够的情况。 new在无法完成内存分配请求时,会抛出异常,异常了要怎么办,这是一个很现实且以后绝对要碰到的问题。 在c中一般使用宏来分配内存并检测分配是否成功,c++中类似以下函...
  • qq981932962
  • qq981932962
  • 2014年10月06日 13:44
  • 781

读书笔记_Effective C++_习惯C++

这是一本非常经典C++书籍,也是我在工作中发现自己C++上还有很多薄弱点的时候经常拿来充电的。这本书内容很多,讲了很多如何高效地使用C++的方法,有些地方自己也没能啃透,读过一遍后很多知识点容易忘记,...
  • John_cdy
  • John_cdy
  • 2015年05月04日 09:51
  • 2206

Effective C++ 解析 1

声明: 大四快毕业了,得面对社会得到offer(当然现在也有offer了 )!  来源: 本文主要参考书籍 Effective C++ 条款三 1 尽量使用new 和 delete 而不使用mallo...
  • u010236550
  • u010236550
  • 2014年02月14日 10:59
  • 1419

C++学习(三)——Effective C++

1.让自己习惯C++ 01.视C++为一个语言联邦 C++高效编程守则视状况而变化,取决于你使用C++的哪一部分 02.尽量以const、enum、inline替换#define ...
  • davidwang414
  • davidwang414
  • 2016年06月10日 07:30
  • 2180

决定干点事儿--翻译一下《effective modern c++》

写了很多关于C++11的博客,总是觉得不踏实,很多东西都是东拼西凑。市场上也很少有C++11的优秀书籍,但幸运的是Meyers老爷子并没有闲赋,为我们带来了《effective modern c++》...
  • wangshubo1989
  • wangshubo1989
  • 2016年01月09日 00:27
  • 5679

Effective Modern C++笔记汇总

Effective Modern C++ 目录Item 1: Understand template type deduction….待续
  • zhangyifei216
  • zhangyifei216
  • 2017年06月05日 16:09
  • 2159

Effective C++(第3版)pdf

下载地址:网盘下载 内容简介  · · · · · · Effective C++是世界顶级C++大师Scott Meyers的成名之作,初版于1991年。...
  • cf406061841
  • cf406061841
  • 2017年07月18日 21:07
  • 768

【C++】《Effective C++》读书笔记汇总

我之前边读《Effective C++》边写下每个条款的读书笔记,这一版是C++11之前的版本。这里我将每个条款令我印象深刻的点小结一下。 1、C++包括:Plain C(面向过程)、OOP(面向对...
  • lpsl1882
  • lpsl1882
  • 2016年04月06日 11:14
  • 2482

《Effective Modern C++》翻译--简介

北京时间2016年1月9日10:31:06,正式开始翻译。水平有限,各位看官若有觉得不妥之处,请批评指正。 之前已经有人翻译了前几个条目,有些借鉴出处:http://www.cnblogs.com/m...
  • wangshubo1989
  • wangshubo1989
  • 2016年01月09日 12:52
  • 4826
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Effective C++回顾(7)
举报原因:
原因补充:

(最多只允许输入30个字)