2011-07-25 12 views
3

テンプレートクラスMyClassがあるとします。 テンプレートのタイプをクラスの変数として保存することはできますか?もしそうなら、どのように?私はそれがこのようなことをすることが可能かどうか不思議です。変数としてC++の型名

Template <typename T> class MyClass; 
Template <typename T> class AnotherClass; 

MyClass<int> myClassInstance; 
AnotherClass<oneInstance.functionThatReturnsTheStoredTypeFromAnInstanceVariableOfMyClass()> anotherClassInstance; 

ありがとうございます。

+0

コンパイルしてテストしましたか?それは機能しましたか? – NirMH

+0

'AnotherClass >'または 'AnotherClass 'を取得しようとしていますか? – Useless

+0

@ NirMH、私はそれが正確に可能ではないように見えるクラスのインスタンス内の変数としてテンプレートに渡された型を格納する方法を知っていれば、それをコンパイルしようとしたでしょう。 – thealch3m1st

答えて

7

これらは静的変数でも構いません。typedefをネストすることができます。

template<typename T> class MyClass { 
public: 
    typedef T type; 
}; 
AnotherClass<MyClass<double>::type> anotherClassInstance; 

ただし、投稿したようなメンバー変数にアクセスすることはC++では不可能です。

+0

+1、コードを編集する必要があります。 'class/struct MyClass'でなければなりません。 – iammilind

+0

ネストされた型の名前を変数と呼んでいません。 –

+0

ああああ。 Objective-CでClass型のようなものを作成する方法はありますか? – thealch3m1st

関連する問題