A
と呼ばれるパブリックメソッドを持つクラスがあるとしましょうinit()
。std::vector
タイプ のオブジェクトを作成するとA
、すべてのオブジェクトに対してこのメソッドを簡単に呼び出すことができます。
std::vector<A> v;
/* filling vector with some objects */
v[1].init(); // Intellisense finds that v[1] object has method 'init()'
しかし、typedef を使用すると、そのメソッドにアクセスできません。
typedef std::vector<A> a_vector;
a_vector v;
/* filling vector with some objects */
v[1]. // Intellisense says that v[1] object doesn't have any members available
typedef
の使用がそのような動作を引き起こしているのはなぜですか?