Classes ref de modèle (C++/CX)
Les modèles C++ ne sont pas publiés aux métadonnées et ne peuvent donc pas avoir une accessibilité publique ou protégée dans votre programme. Vous pouvez, bien sûr, utiliser les modèles C++ standard en interne dans votre programme. En outre, vous pouvez définir une classe ref privée comme un modèle et vous pouvez déclarer une classe ref de modèle explicitement spécialisé comme membre privé dans une classe ref publique.
Création de modèles de classe ref
L'exemple suivant indique comment déclarer une classe ref privée comme modèle, et également comment déclarer un modèle C++ standard et comment déclarer les deux en tant que membres d'une classe ref publique. Notez que le modèle C++ standard peut être spécialisé par un type Windows Runtime, dans ce cas une plateforme ::String^.
namespace TemplateDemo
{
// A private ref class template
template <typename T>
ref class MyRefTemplate
{
internal:
MyRefTemplate(T d) : data(d){}
public:
T Get(){ return data; }
private:
T data;
};
// Specialization of ref class template
template<>
ref class MyRefTemplate<Platform::String^>
{
internal:
//...
};
// A private derived ref class that inherits
// from a ref class template specialization
ref class MyDerivedSpecialized sealed : public MyRefTemplate<int>
{
internal:
MyDerivedSpecialized() : MyRefTemplate<int>(5){}
};
// A private derived template ref class
// that inherits from a ref class template
template <typename T>
ref class MyDerived : public MyRefTemplate<T>
{
internal:
MyDerived(){}
};
// A standard C++ template
template <typename T>
class MyStandardTemplate
{
public:
MyStandardTemplate(){}
T Get() { return data; }
private:
T data;
};
// A public ref class with private
// members that are specializations of
// ref class templates and standard C++ templates.
public ref class MySpecializeBoth sealed
{
public:
MySpecializeBoth(){}
private:
MyDerivedSpecialized^ g;
MyStandardTemplate<Platform::String^>* n;
};
}
Voir aussi
Système de type (C++/CX)
Informations de référence sur le langage C++/CX
Référence aux espaces de noms
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour