「C++ CLI コードテンプレート 継承」の版間の差分
ナビゲーションに移動
検索に移動
(ページの作成:「==C++ CLI コードテンプレート 継承== using namespace System; ref class Base { public: virtual void func1() { Console::WriteLi…」) |
|||
34行目: | 34行目: | ||
}; | }; | ||
− | int main(array | + | int main(array<System::String ^> ^args) |
{ | { | ||
Deriv^ base = gcnew Deriv(); | Deriv^ base = gcnew Deriv(); | ||
− | base- | + | base->func1(); |
− | base- | + | base->func2(); |
− | base- | + | base->func3(); |
Base^ base2 = gcnew Deriv(); | Base^ base2 = gcnew Deriv(); | ||
− | base2- | + | base2->func1(); |
− | base2- | + | base2->func2(); |
− | base2- | + | base2->func3(); |
return 0; | return 0; | ||
} | } |
2020年2月15日 (土) 08:01時点における版
C++ CLI コードテンプレート 継承
using namespace System; ref class Base { public: virtual void func1() { Console::WriteLine(L"Base::func1"); } virtual void func2() { Console::WriteLine(L"Base::func2"); } virtual void func3() { Console::WriteLine(L"Base::func3"); } }; ref class Deriv : public Base { public: // 明示的オーバーライド virtual void func1() override { Console::WriteLine(L"Deriv::func1()"); } // オーバーライドしない(隠蔽) virtual void func2() new { Console::WriteLine(L"Deriv::func2()"); } // 名前付けオーバーライド virtual void newFunc3() = Base::func3 { Console::WriteLine(L"Deriv::func3()"); } }; int main(array<System::String ^> ^args) { Deriv^ base = gcnew Deriv(); base->func1(); base->func2(); base->func3(); Base^ base2 = gcnew Deriv(); base2->func1(); base2->func2(); base2->func3(); return 0; }
© 2006 矢木浩人