| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
ページの作成:「==C++ CLI コードテンプレート 継承== using namespace System; ref class Base { public: virtual void func1() { Console::WriteLi…」
==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;
}

案内メニュー