2017-04-12 6 views
-6

C++では、ベクトルをインスタンス化すると、たとえばObj型のインスタンスを作成すると、その要素を指定することによって、ドットアクセサでObjのメンバにアクセスできます。私はテンプレート<class T> structで同じことをしようとしています。テンプレートクラスのメンバにアクセスする方法

構造体のObjメンバーにアクセスするにはどうすればvector<T>を含むtemplate <class T> Structが含まれており、具体的にはStruct<Obj>とインスタンス化されています。

私が間違っている場合はどうすればいいですか?

+6

実際、*本物*、クラス宣言構造体、Obj、および同じもののベクトルを含むもの、およびあなたがしようとしているもののシンプルなアクセサーサンプル(成功していないもの)は、この疑問を明確にするための*不思議*を行います。 – WhozCraig

答えて

0

あなたがこれを持っているようなので、それが見えます:

struct Obj 
{ 
    int x_; 
}; 

template <typename T> 
struct Struct 
{ 
    std::vector<T> items_; 
}; 

ので、要素にアクセスするには(あなたはベクトルにこれを追加しましたと仮定した場合): `ため

int main() 
{ 
    Struct s; 
    s.items_.resize(10); 
    s.items_[0].x_ = 5; // Access the object memeber of element 0 in the vector. 
} 
関連する問題