- C
- Objective-Oriented C++
- Tempalte C++
- STL
//当关注点从一个次语言转到另一个次语言时,为了高效编程,你可能需要改变一些策略。
//比如对内置类型而言,值传递一般比引用传递更高效;
//但对于用户自定义类,由于构造函数及虚构函数的存在,const型引用传递可能更加高效。
//总之,应深入了解每个次语言的特性进行有针对性的操作。
条款02:尽量以const,enum,inline,替换#define
//对于单纯常量,最好以const对象或者enum代替#define
#define STR "giggle"
const char* const pStr = "giggle";
const std::string str("giggle");
//对于形似函数的宏(macros),最好改用template inline函数代替#define
#define CALL_WITH_MAX(a, b) f((a) > (b) ? (a) : (b))
template<typename T>
inline void callWithMax(const T& a, const T& b)
{
f(a > b ? a : b);
}
//enum的妙用
class A {
private:
enum { Length = 10 };
int array[Length];
}