Udostępnij za pośrednictwem


Jawne zastępowanie elementu członkowskiego interfejsu

Składnia deklaracji przesłonięcie jawne członka interfejsu w klasie zmienił się z zarządzanych rozszerzeń języka C++ do Visual C++.

Często zachodzi potrzeba zapewnienia dwa wystąpienia członka interfejsu w obrębie klasy, która implementuje interfejs-taki, który jest używany, gdy obiekty klas są manipulowane przez dojście do interfejsu i jest używany w przypadku obiektów klasy za pomocą interfejsu klasy.Na przykład:

public __gc class R : public ICloneable {
   // to be used through ICloneable
   Object* ICloneable::Clone();

   // to be used through an R
   R* Clone();
};

W zarządzanych rozszerzeń robimy to poprzez zapewnienie jawna deklaracja metody interfejsu o nazwie metody kwalifikowaną nazwą interfejsu.Wystąpienie klasy specyficzne jest bez zastrzeżeń.Eliminuje to potrzebę spuszczonymi wartość zwracaną przez Clone, w tym przykładzie, gdy jawne wywoływana za pośrednictwem instancji R.

W nowych składni ogólne mechanizm nadrzędnym został wprowadzony, który zastępuje składni rozszerzeń zarządzanych.Naszym przykładzie będzie przebudowywany w następujący sposób:

public ref class R : public ICloneable {
public:
   // to be used through ICloneable
   virtual Object^ InterfaceClone() = ICloneable::Clone;

   // to be used through an R
   virtual R^ Clone();
};

Tej poprawki wymaga, aby członka interfejsu zastępowaniu jawnie podane unikatową nazwę w obrębie tej klasy.W tym miejscu już dostarczone niewygodne nazwę InterfaceClone.Zachowanie jest jeszcze samo-wywołanie przez ICloneable zmieniono nazwę wywołuje interfejs InterfaceClone, podczas rozmowy za pośrednictwem obiektu typu R wywołuje drugi Clone wystąpienie.

Zobacz też

Informacje

Jawne przesłonięcia.

Koncepcje

Deklaracje członków w obrębie klasy lub interfejsu (C++/CLI)