テンプレート演算子を使用して、さまざまなユーザデータ型からさまざまな数のメンバ変数を宣言する方法はありますか?メンバ変数の汎用宣言
は、このコードを考えてみます。
class a {
int member;
void ProcessMemberVariable();
};
class b {
char member;
void ProcessMemberVariable();
};
... // arbitrary number of such classes
class test {
template <typename T>
void declare (T a) {
// each time this member function is called a new member variable of the
// user data type T shall be declared in the instance of the class test??
}
};
int()
{
test Test;
Test.template declare<a>(a A);
Test.template declare<b>(b B);
...
}
は、ユーザー定義のデータ型のいずれかの種類を設定するためのりんごであるインターフェイスを実装したい想像してみてください。私は...クラス「テスト」のインスタンスを宣言し、そのメンバ関数を呼び出す場合にのみ、ユーザー定義のデータ型の識別子を知っているので、私はそれぞれの提案に感謝
...
あなたは 'declare'と、このような効果を使用したサンプルコードを示してもらえ – kennytm
どのように使用してはどうですか? ['std :: vector'](http://en.cppreference.com/w/cpp/container/vector)または[' std :: list'](http://en.cppreference.com/w/cpp/container/list)を使って "変数"を保存するのですか? –
これが可能ならば、名前が不明なメンバ変数にアクセスするコードをどのように書くことができますか?インスタンスとインスタンスは個別にアクセス可能になります – hmjd