从Google C++ Coding Style里面抽出一些贴近现实的rule
2011-06-07 10:14
411 查看
ref a class have two methods, one is #include, one is forward declaration, and the later can reduce dependence recompilation when referenced header file changes.
Define functions inline only when they are small, say, 10 lines or less. Typically, the accessor and mutator
place a function's variable in the narrowest scope possible, and initialize variables in the declaration. e.g.
while (const char* p = strchr(str, '/')) str = p + 1;
static class member variables, and function static variables, must be Plain Old Data (POD): only ints, chars, floats, or pointers, or arrays/structs of POD.
If you need a static or global variable of a class type, consider initializing a pointer (which will never be freed), from either your main() function or from pthread_once(). Note that this must be a raw pointer, not a "smart" pointer.
In general, constructor should merely set member variables to their inital values, any complex initialization should go in an explicit Init(). and Don't throw exception in constructor, carefully access potentially uninitialized global variables
Disable copy and assignment operator if that is not necessary
// This should be used in the private: declarations for a class
#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
TypeName(const TypeName&); \
void operator=(const TypeName&
Define functions inline only when they are small, say, 10 lines or less. Typically, the accessor and mutator
place a function's variable in the narrowest scope possible, and initialize variables in the declaration. e.g.
while (const char* p = strchr(str, '/')) str = p + 1;
static class member variables, and function static variables, must be Plain Old Data (POD): only ints, chars, floats, or pointers, or arrays/structs of POD.
If you need a static or global variable of a class type, consider initializing a pointer (which will never be freed), from either your main() function or from pthread_once(). Note that this must be a raw pointer, not a "smart" pointer.
In general, constructor should merely set member variables to their inital values, any complex initialization should go in an explicit Init(). and Don't throw exception in constructor, carefully access potentially uninitialized global variables
Disable copy and assignment operator if that is not necessary
// This should be used in the private: declarations for a class
#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
TypeName(const TypeName&); \
void operator=(const TypeName&
相关文章推荐
- Google C++ Coding Style:引用参数
- 关于google的C++ coding style
- Google's C++ coding style
- Google's C++ coding style
- Google C++ Coding Style:右值引用(Rvalue Reference)
- [转]Google C++ Style Guide
- C++:google style 强制类型转换
- Google C++ Style Guide 阅读笔记 3
- Google C++ Style Guide
- Google C++ Style Guide:Background
- 读google c++ style的总结。
- C++ coding style (for webkit)
- google c++ style
- Google C++ Style Guide
- Google C++ Style Guide----作用域
- 2011 4-26 Google Coding style 1
- Google C++ Style Guide的哲学
- Google's C++ coding style
- Google C++ Style Guide
- Google Coding Style 重点