実は、今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; }