Effective c++
文章平均质量分 55
雷小c
这个作者很懒,什么都没留下…
展开
-
Effective C++ 条款30 透彻了解内联的里里外外
内联:将此函数的每一个调用都用该函数本体替换之 过度内联,会使目标码过大; 内联一般内联小型、被频繁调用的函数,比如swap函数。 template<typename T> inline const T& std::max(const T& a, const T& b) { return a < b ? b : a; } 内联函数通常一定被置于头文件内,因为大多数建制环境(build environments)在编译过程中进行inlining,为了将一个函数调用原创 2021-02-07 11:59:58 · 156 阅读 · 0 评论 -
Effective C++ 条款28 避免返回handles指向对象内部成分
所谓的handle:pointer、reference、迭代器统统都是,用来取得某个对象的东西。 考虑下面代码: class Point { // 表示“点”的类 public: Point(int x, int y); ... void setX(int newx); void setY(int newy); ... }; struct RectData { //左上角的点和右下角的点用来表示一个矩阵 Point ulhc; //ulhc=“upper left-hand corn原创 2021-02-06 23:11:02 · 201 阅读 · 0 评论 -
Effective C++ 条款13 以对象管理资源
资源管理(Resource Management)是很重要的一个内容,这也是C/C++区别其他强类型高级语言的重要的一点。 C++程序中最常使用的资源就是动态分配内存(分配内存不归还会导致内存泄漏),其他常见的资源还包括文件描述器(file descriptors)、互斥锁(mutex locks)、数据库连接、网络sockets以及图形界面中的字型和笔刷。 有借有还,再借不难。 有这样的意识还不够,异常、函数内多重回传路径、程序维护员改动软件但未充分理解等等其他的原因导致资源管理得好并不太容易。so,资源原创 2021-02-04 23:48:28 · 121 阅读 · 0 评论 -
Effective C++ 条款06 若不想使用编译器自动生成的函数就明确拒绝
如果不声明copy ctor和copy assignment,编译器会自动声明,并且都是public的。如何阻止copying呢? 1. 将成员函数声明为private而且故意不去实现它 c++标准库的iostream程序中就是这样做的。ios_base, basic_ios和sentry类无一例外。我查看了安装Dev c++时候安装的编译器gnu c++的源代码,如下: 这样,如果拷贝该类对象,编译器会阻止;如果不慎在member函数或friend函数调用,链接器会抱怨。 另外,我们知道,把连接期错误移原创 2021-02-04 20:58:39 · 157 阅读 · 0 评论