Aracılığıyla paylaş


Açık Geçersiz Kılmalar (C++ Bileşen Uzantıları)

Bu konuda nasıl bir temel sınıf veya arabirim üyesi açıkça geçersiz anlatılmaktadır.(Açık) adlı bir geçersiz kılma yöntemi farklı bir ada sahip bir türetilmiş yöntem geçersiz kılmak için yalnızca kullanılmalıdır.

Tüm çalışma zamanlarının

Sözdizimi

overriding-function-declarator = type::function [,type::function] { overriding-function-definition }
overriding-function-declarator = function { overriding-function-definition }

Parametreler

  • geçersiz kılma-işlevi-Bildiricisi
    Dönüş türü, adı ve bağımsız değişken listesi geçersiz kılma fonksiyonu.Geçersiz kılma işlevi kılınmasını işlevi ile aynı ada sahip yok dikkat edin.

  • türü
    Temel tür geçersiz kılmak için bir işlev içerir.

  • işlev
    Geçersiz kılmak için bir veya daha fazla işlev adları virgülle ayrılmış listesi.

  • geçersiz kılma-işlev tanımı
    Geçersiz kılma işlevi tanımlayan işlev ifadeleri.

Notlar

Kullanım açık yöntem imzası için diğer ad oluşturma veya yöntem witht aynı imza için farklı uygulamaları sağlamak için geçersiz kılar.

Devralınan türler ve devralınan türü üyeler davranışını değiştirme hakkında daha fazla bilgi için bkz: Geçersiz Kılma Tanımlayıcıları (C++ Bileşen Uzantıları).

Windows Çalışma Zamanı

fw0bbh51.collapse_all(tr-tr,VS.110).gifGereksinimler

Derleyici seçeneği:/ZW

Ortak Dil Çalışma Zamanı

Notlar

Açık hakkında bilgi için yerel kodda geçersiz kılar veya derlenmiş HTML kodu ile /clr:oldSyntax, bkz: Açık geçersiz kılar (C++).

fw0bbh51.collapse_all(tr-tr,VS.110).gifGereksinimler

Derleyici seçeneği:/clr

fw0bbh51.collapse_all(tr-tr,VS.110).gifÖrnekler

Örnek

Aşağıdaki kod örneği basit, örtülü geçersiz kılma ve üye uygulamasının temel arabiriminde açıkça geçersiz kılmaları kullanmayan gösterir.

// explicit_override_1.cpp
// compile with: /clr
interface struct I1 {
   virtual void f();
};

ref class X : public I1 {
public:
   virtual void f() {
      System::Console::WriteLine("X::f override of I1::f");
   }
};

int main() {
   I1 ^ MyI = gcnew X;
   MyI -> f();
}

Çıktı

  

Örnek

Aşağıdaki kod örneği, açıkça geçersiz kılma sözdizimini kullanarak tüm arabirim üyeleri ortak imzayla uygulamak gösterilmiştir.

// explicit_override_2.cpp
// compile with: /clr
interface struct I1 {
   virtual void f();
};

interface struct I2 {
   virtual void f();
};

ref struct X : public I1, I2 {
   virtual void f() = I1::f, I2::f {
      System::Console::WriteLine("X::f override of I1::f and I2::f");
   }
};

int main() {
   I1 ^ MyI = gcnew X;
   I2 ^ MyI2 = gcnew X;
   MyI -> f();
   MyI2 -> f();
}

Çıktı

  
  

Örnek

Aşağıdaki kod örneği, uygulama işlev adından işlevi geçersiz kılma nasıl olabilir gösterir.

// explicit_override_3.cpp
// compile with: /clr
interface struct I1 {
   virtual void f();
};

ref class X : public I1 {
public:
   virtual void g() = I1::f {
      System::Console::WriteLine("X::g");
   }
};

int main() {
   I1 ^ a = gcnew X;
   a->f();
}

Çıktı

  

Örnek

Aşağıdaki kod örneği, tür güvenli tahsilat uygulayan açık arabirim uygulaması gösterir.

// explicit_override_4.cpp
// compile with: /clr /LD
using namespace System;
ref class R : ICloneable {
   int X;

   virtual Object^ C() sealed = ICloneable::Clone {
      return this->Clone();
   }

public:
   R() : X(0) {}
   R(int x) : X(x) {}

   virtual R^ Clone() {
      R^ r = gcnew R;
      r->X = this->X;
      return r;
   }
};

Ayrıca bkz.

Kavramlar

Çalışma platformları için bileşen uzantıları