C++/CLI:ポイント
public interface class ITest{
public:
virtual void doSomething(){
}
}
public ref Base {
...........
...........
}
generic <typename T> where T : ITest
public ref Derived : Base{
public:
virtual void doNothing(){
}
}
public ref AnotherClass {
public:
generic<class T> where T : Base
static int justDoThis(){
//Problem!!
}
}
のC#:
は、C#では、二つのクラスA
とB
があります。 A
はITest
を継承し、B
はDerived
を継承します。A
が型名として使用されます。また、B
には、A
のプライベート変数があります。したがって、メイン関数AnotherClass.justDoThis<B>()
からは、B
がジェネリック型として渡されます。
"//問題!!"パート:
このセクションでは、B
という新しいインスタンスを作成し、B
のプライベート変数であるA
にアクセスする必要があります。私はC#のコードの記述のあなたのパラグラフを取る場合
こんにちは、私はC++/CLIの初心者です。ご返信ありがとうございますが、問題1はできません。ビルド中にエラーが表示されるため、gcnewを使用してジェネリック型を割り当てることはできません。私はsafe_cast(System :: Activator :: CreateInstance(TService :: typeid))を使用しています。私は今、2つのことをしたい。まず、このistanceをwhere句のない別の汎用関数に渡します。次に、別の関数の中で、ITestからAで書かれたオーバーライド機能を使用したいと思います。 –
user6924365
'TService'とは何ですか?あなたはあなたの質問に 'TService'を持っていません。また、投稿ごとに1つの質問をしてください。同じ投稿にさらに質問を追加しないでください。 –
それはTです。申し訳ありません。私はジェネリック型の間違った名前を付けました。あなたは質問に答えてください。私は答えが必要です。 :-) – user6924365