実は、今Effective C++を読んでいる。
いわゆる、C++における入門書の次に読む本。

現在進行形でとても参考になっているので、ところどころメモっておこうと思う。

曰く、

単純な定数には、#defineより、constかenumを使うようにしよう。

Effective C++ p.8より

クラス定数なんかを定義するときに、enumで作っちゃうとよいよ、とのこと。
enumハックって名前がかっこいいから、なんとなくサンプル書いてメモっておく。

 
#include <iostream>
 
namespace TestClass {
  class SuperCls{
 
  private:
    /*************************************************************************** 
       enumハックといわれている、かっこいい名前のハック
       クラスに定数を作りたいときとかに便利
    ****************************************************************************/
    enum {
      A = 1,
      B = 2,
      C = 3,
    };
 
    /*************************************************************************** 
      enumハックじゃない場合の、クラス定数は以下のように作る
    ****************************************************************************/
    static const int Numval = 5;
 
  public:
    int get_numval() const {
      return Numval;
    }
 
    int get_B() const {
      int b = B;
      return b;
    }
  };
}
 
 
int main(void){
  std::cout << "konnichiwa sekai" << std::endl;
  TestClass::SuperCls cls;
  int num = cls.get_numval();
  std::cout << num << std::endl;
  int b = cls.get_B();
  std::cout << b << std::endl;
  return 0;   
}