トップ 一覧 ping 検索 ヘルプ RSS ログイン

C++ CLI コードテンプレート 継承の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!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;
 }