オブジェクト指向は本当に正しいのか? → YES!×2

このエントリーをはてなブックマークに追加
332デフォルトの名無しさん
自分の構築したシステムが一体なんであるか考える癖をつけたほうがいい
目的は
開発工数の削減なのか、
シンプルな記述なのか、
使用者に分かりやすいインターフェイスの提供なのか、
実行速度なのか、
 ・
 ・
 ・
なんの目的も達成してないもの作られても反応に困る
333224:2012/05/20(日) 22:35:55.76
>>327
どうしても面倒だったら、こういう手もある。
template< typename t >
std::list< t * > &ty_col() //type collection
{ static std::list< t * > lst; return lst; }
template< typename t >
struct auto_type_collector
{
  typename std::list< t * >::iterator itr;
  auto_collector(){ ty_col<t>().push_back( (t *)this ); itr=--ty_col<t>().end(); }
  ~auto_collector(){ ty_col<t>().erase( itr ); }
};
struct my_interface{};
struct game_obj
  :public auto_type_collector< game_obj >
  ,public my_interface, public auto_type_collector< my_interface >{};
334224:2012/05/20(日) 22:41:12.29
だけど、>>332の方法はお勧めはしないね。
少々面倒でも、セオリー通り、型や機能や用途ごとにリスト
を作ってくのが早道だと思う。