Effective C++ Third Edition 读书笔记 4
2009-07-08 22:40
323 查看
Item 4: Make sure that objects are initialized before they're used
1. C++数组不对对象进行初始化,是因为这是C++的C部分,要考虑性能。Inside The C++ Oject Model也说明这这一规则,但是没有理由。
2. 要使用初始化列表,而不是赋值操作。
3. 要注意非本地静态对象,它们的初始化顺序是不确定的
4. 替代方案是用单体,但这里面的单体是单线程适用的,多线程情况下,下面的代码都回出问题。
void func()
{
const static string x = "Hello world!";
cout << x << endl;
}
除非确保该函数在单线程时调用。真是太危险了。
1. C++数组不对对象进行初始化,是因为这是C++的C部分,要考虑性能。Inside The C++ Oject Model也说明这这一规则,但是没有理由。
2. 要使用初始化列表,而不是赋值操作。
3. 要注意非本地静态对象,它们的初始化顺序是不确定的
4. 替代方案是用单体,但这里面的单体是单线程适用的,多线程情况下,下面的代码都回出问题。
void func()
{
const static string x = "Hello world!";
cout << x << endl;
}
除非确保该函数在单线程时调用。真是太危险了。
相关文章推荐
- Effective C++ Third Edition 读书笔记 37
- Effective C++ Third Edition 读书笔记 1
- Effective C++ Third Edition 读书笔记 2
- Effective C++ Third Edition 读书笔记 3
- “Effective C++ Third Edition”学习笔记(三)
- 读书笔记之Effective C++ 2nd Edition
- 《C++ primer Third edition》读书笔记
- “Effective C++ Third Edition”学习笔记(四)
- 第三章:构造函数,析构函数和赋值操作(Effective C++ Second Edition 读书笔记)
- 第四章 类和函数:设计与声明(Effective C++ Second Edition 读书笔记)
- “Effective C++ Third Edition”学习笔记(一)
- “Effective C++ Third Edition”学习笔记(二)
- 第五章 类和函数:实现(Effective C++ Second Edition 读书笔记)
- 第一章:从C转向C++ (Effective C++ Second Edition 读书笔记)
- 第六章 继承和面向对象设计 (Effective C++ Second Edition 读书笔记)
- 第二章:内存管理(Effective C++ Second Edition 读书笔记)
- Effective C++ Second Edition 读书笔记
- 读书笔记 effective c++ Item 47 使用traits class表示类型信息
- 读书笔记 effective c++ Item 3 在任何可能的时候使用 const
- 读书笔记_Effective_C++_条款十五:在资源类管理类中提供对原始资源的访问