// macro for properties #define POC_PROP( typ, mem, Mem )\ public:\ void set##Mem( const typ& val ){ mem = val; } \ typ& ref##Mem( void ){ return mem; }\ const typ& Mem( void ) const { return mem; }\ typ* p##Mem( void ){ return &mem; }\ protected:\ typ mem; #define POC_PROP_POINTER( typ, mem, Mem )\ public:\ void set##Mem( typ* const& val ){ mem = val; }\ typ*& ref##Mem( void ){ return mem; }\ typ* Mem( void ){ return mem; }\ const typ* Mem( void ) const { return mem; }\ protected:\ typ* mem;
ちなみに使い方はこんな感じ。
class Hoge { POC_PROP( int, apple_, Apple ); POC_PROP( float, orange_, Orange ); POC_PROP_POINTER( char, cafe_, Cafe ); };
いやー、ものぐさなもので。自分しか関わらないコードだし。自分だけなら自分は絶対意味忘れないし。
(このコードはVC++、Xcodeに対応しています。)