「C++ CLI コードテンプレート 継承」の版間の差分
ナビゲーションに移動
検索に移動
6行目: | 6行目: | ||
{ | { | ||
public: | public: | ||
− | + | [[vi]]rtual void func1() { | |
Console::WriteLine(L"Base::func1"); | Console::WriteLine(L"Base::func1"); | ||
} | } | ||
− | + | [[vi]]rtual void func2() { | |
Console::WriteLine(L"Base::func2"); | Console::WriteLine(L"Base::func2"); | ||
} | } | ||
− | + | [[vi]]rtual void func3() { | |
Console::WriteLine(L"Base::func3"); | Console::WriteLine(L"Base::func3"); | ||
} | } | ||
21行目: | 21行目: | ||
public: | public: | ||
// 明示的オーバーライド | // 明示的オーバーライド | ||
− | + | [[vi]]rtual void func1() override { | |
Console::WriteLine(L"Deriv::func1()"); | Console::WriteLine(L"Deriv::func1()"); | ||
} | } | ||
// オーバーライドしない(隠蔽) | // オーバーライドしない(隠蔽) | ||
− | + | [[vi]]rtual void func2() new { | |
Console::WriteLine(L"Deriv::func2()"); | Console::WriteLine(L"Deriv::func2()"); | ||
} | } | ||
// 名前付けオーバーライド | // 名前付けオーバーライド | ||
− | + | [[vi]]rtual void newFunc3() = Base::func3 { | |
Console::WriteLine(L"Deriv::func3()"); | Console::WriteLine(L"Deriv::func3()"); | ||
} | } |
2020年2月16日 (日) 04:22時点における最新版
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 矢木浩人