Vorlagen der Memberfunktion

Die Member der Ausdruck verweist auf Vorlagen und Vorlagen die Vorlage Memberfunktion der geschachtelten Klasse an.Vorlagen sind von der Memberfunktion, die Member einer Klasse oder einer Klassenvorlage sind.Weitere Informationen finden Sie unter Vorlagen der geschachtelten Klasse.

Memberfunktionen können Vorlagen in mehreren Kontexten Funktion sein.Alle Features von Klassenvorlagen sind generisch, jedoch wird nicht als Membervorlagen Memberfunktion oder Vorlagen.Wenn diese Memberfunktion eigene Vorlagenargumente übernehmen, werden sie als Memberfunktion Vorlagen betrachtet.Ausführliche Informationen finden Sie unter Memberfunktionen von Vorlagenklassen.

Beispiel

Vorlagen Memberfunktion nicht auf Vorlagen basierende oder Vorlagenklassen werden als Funktion mit ihren von Vorlagenparametern deklariert.

// member_function_templates.cpp
struct X
{
   template <class T> void mf(T* t) {}
};

int main()
{
   int i;
   X* x = new X();
   x->mf(&i);
}

Im folgenden Beispiel wird eine Memberfunktion einer Vorlagenklasse Vorlage an.

// member_function_templates2.cpp
template<typename T>
class X
{
public:
   template<typename U>
   void mf(const U &u)
   {
   }
};

int main()
{
}

Darüber hinaus in Visual Studio.NET 2003 und höher können Membervorlagen außerhalb einer Klasse definiert sind.

// defining_member_templates_outside_class.cpp
template<typename T>
class X
{
public:
   template<typename U>
   void mf(const U &u);
};

template<typename T> template <typename U>
void X<T>::mf(const U &u)
{
}

int main()
{
}

Lokalen Klassen sind nicht zulässig, um Membervorlagen haben.

Funktionen können keine Membervorlagen virtuelle Funktionen sein und können virtuelle Funktionen von einer Basisklasse nicht überschrieben werden, wenn sie mit dem gleichen Namen wie eine virtuelle Funktion der Basisklasse deklariert werden.

Eingeführte Unterstützung von Visual C++ .NET 2003 für auf Vorlagen basierende benutzerdefinierte Konvertierungen.Das folgende Beispiel funktioniert in Visual C++ .NET 2003 Standard, wie nachfolgend angegeben.

// templated_user_defined_conversions.cpp
template <class T>
struct S
{
   template <class U> operator S<U>()
   {
      return S<U>();
   }
};

int main()
{
   S<int> s1;
   S<long> s2 = s1;  // Convert s1 using UDC and copy constructs S<long>.
}

Siehe auch

Referenz

Funktionsvorlagen