Effective C++

条款01:视C++为一个语言联邦

  1. 多重范型编程语言,在某个次语言中,各种高效编程守则简单易懂;但从一个语言移到另一个语言,守则可能改变。
  2. 次语言类型:
    • C:
    • Object-Oriented C++:
    • Template C++:
    • STL:

条款02: 尽量以const,enum,inline替换 #define(?)

  1. 宁可以编译器替换预处理器。
  2. #define 的记号也许被预处理器移走了,编译器也许从未看见,可能没进入记号表,编译时带来困惑
  3. #define 不能创建 class 专属常量
//
  1. enum hack:
//

(1) 某方面比较像 #define 而不像 const;
(2) 实用主义
5. 不用 #define 实现宏

总结:

  • 对于单纯常量,最好以 const 对象或 enums 替换 #defines。
  • 对于形似函数的宏(macros),最好用 inline 函数替换 #defines。
posted @ 2025-11-06 00:13  骆驼丶浮云  阅读(5)  评论(0)    收藏  举报