Sdílet prostřednictvím


Členské funkce šablony

Šablona členské termín odkazuje členské funkce šablony a šablony vnořené třídy.Šablony členské funkce jsou funkce šablony, které jsou členy třídy nebo šablonu třídy.Další informace naleznete v tématu Vnořené šablony třídy.

Funkce členů může být funkce šablony v několika kontextech.Všechny funkce šablony třídy jsou obecné, ale nejsou uvedeny jako člen šablony nebo členské funkce šablony.Pokud tyto funkce členů vlastní šablony argumenty, jsou považovány za být členské funkce šablony.Podrobnosti naleznete v tématu Členské funkce šablony třídy.

Příklad

Členské funkce šablony třídy nontemplate nebo šablony jsou deklarovány jako funkce šablony s jejich parametry šablony.

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

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

Následující příklad ukazuje člen funkce šablony šablonu třídy.

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

int main()
{
}

Navíc v aplikaci Visual Studio.NET 2003 a novější, člen, který je vně třídy lze také definovat šablony.

// 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()
{
}

Místní třídy nelze členské šablony.

Funkce členů Šablona nemůže být virtuální funkce a virtuální funkce ze základní třídy nelze přepsat, pokud jsou deklarovány se stejným názvem jako základní třída virtuální funkce.

Visual C++.NET 2003 byla zavedena podpora podle šablony uživatelem definované převody.Následující příklad pracuje v jazyce C++.NET 2003 podle standardu.

// 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>.
}

Viz také

Referenční dokumentace

Funkce šablon