「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 矢木浩人