博客专栏  >  编程语言   >  Effective C++ 学习笔记

Effective C++ 学习笔记

学习一下《Effective C++》,并记录一下自己的思考与总结。

关注
1 已关注
15篇博文
  • Effective C++ 49,50

    49.熟悉标准库。 C++标准库很大。 首先标准库中函数很多,为了避免名字冲突,使用命名空间std。而之前的库函数都存放于中,现在成为伪标准库。而不能直接将这些头文件全部直接添加命名空间,标准委员...

    2014-10-11 00:32
    886
  • Effective C++ 1-6

    1.尽量用const 和inline 而不用#define: 即尽量用编译器,而不是预处理。宏命令导致编译器永远看不到被声明为宏的符号名,而编译器的处理会进行一些错误判断,但预处理不会。 如果出错...

    2014-10-05 23:26
    549
  • Effective C++ 7

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

    2014-10-06 13:44
    760
  • Effective C++ 8,9

    8.写operator new 和 operator delete 时要遵循常规。 operator new要与系统缺省的operator new  操作一致。即有正确的返回值,内存不够时要...

    2014-10-06 15:06
    519
  • Effective C++ 10

    10.如果写了operator new,就要同时写operator delete。 为什么要写自己的operator new和delete,首先这不叫重载,这叫隐藏。 new只是用来申请空间...

    2014-10-06 19:43
    629
  • Effective C++ 11-17

    11.为需要动态分配内存的类声明一个拷贝构造函数和一个赋值操作符。 显然,由于动态内存分配,绝对会有深浅拷贝的问题,要重写拷贝构造函数,使其为深拷贝,才能实现真正意义上的拷贝。这是我理解的关于要声明...

    2014-10-07 20:18
    826
  • Effective C++ 18-23

    18.争取使类的接口完整并且最小。 类的用户接口是指使用这个类的程序员所能访问得到的接口,典型的接口里只有函数存在,封装好类的数据成员。 完整是指接口中包含所有 合理的操作的函数。最小是指函数尽可...

    2014-10-08 00:06
    826
  • Effective C++ 24,25

    24.在函数重载和设定参数缺省值间要慎重选择。 获得一种类型的数据的最小值或最大值,对于c中,一般使用在中定义的各种宏如INT_MIN 来进行表示,但是这样无法进行泛型编程,即对应如何一种类型T返回...

    2014-10-08 14:14
    703
  • Effective C++ 26,27,28

    26.当心潜在的二义性。 一些潜在的二义性的例子: class A{ public: A(const B&); }; class B{ public: operator A() const; };...

    2014-10-08 15:23
    686
  • Effective C++ 34

    34.将文件间的编译依赖性降到最低。 对于一个大型程序,其结构是错综复杂的,当你对一个类进行一些改动时,修改的不是接口,而是类的实现,即只是一些细节部分,但重新生成程序时,所有用到这个类的的文件都要...

    2014-10-09 01:05
    1289
  • Effective C++ 29-33

    29.避免返回内部数据的句柄。 即使声明一个类的对象为const,不能进行修改,在获得其数据的句柄也就是地址的情况下,还是可以强行修改的。 class A{ public: int n; ...

    2014-10-09 01:06
    1064
  • Effective C++ 35,36,37

    35.使公有继承体现 “是一个” 的含义。 共有继承意味着 “是一个”。如  class B:public A; 说明类型B的每一个对象都是一个类型A的对象,A比B具有更广泛的概念,而B表示一个更特...

    2014-10-09 16:07
    611
  • Effective C++ 38-42

    38.绝不要重新定义继承而来的缺省参数值。 重新定义函数缺省参数值意味着重新定义函数,而非虚函数不能重新定义,所以将就考虑不能重新定义虚函数的缺省参数值的原因:虚函数是动态绑定的而缺省参数值是静态绑...

    2014-10-09 20:00
    574
  • Effective C++ 43,44

    43.明智地使用多继承。 多继承带来了极大的复杂性。最基本的一条就是二义性。 当派生类为多继承时,其多个基类有同名的成员时,就会出现二义性。通常要明确其使用哪个成员的。显式地限制修饰成员不仅很笨拙...

    2014-10-09 22:39
    829
  • Effective C++ 45-48

    45。弄清c++在幕后为你所写,所调用的函数。 如果设置一个空类,c++编译器会声明以下函数:拷贝构造函数,赋值运算符,析构函数,一对析构函数(const和非const)。而如果你没有声明任何构造函数...

    2014-10-10 00:44
    719
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部