pouvons-nous déclarer une fonction template
dans une classe normale sans une classe de modèle ou doit-elle toujours être dans un template class
?Modèles en C++
3
A
Répondre
2
peut-on déclarer une fonction de modèle dans une classe normale avec une classe de modèle
Oui nous pouvons. Par exemple
class demo
{
public:
template <typename T>
void func(const T& x) {
//do stuffs
}
};
int main()
{
demo d;
d.func<int>(5);
}
est parfaitement valable
2
Oui, vous pouvez avoir des fonctions de modèle dans les classes non-basé sur un modèle aussi, par exemple:
struct X {
template<class T>
void f(const T& t) {
// ...
}
};
0
Oui, vous pouvez, mais assurez-vous que votre définition et la déclaration de la fonction de modèle est dans les fichiers d'en-tête. Si vous voulez en savoir plus, pourquoi est-ce comme ça ou plus sur les gabarits en général, je peux vous recommander ce livre Templates - Complete Guide
Questions connexes
- 1. Programmation de modèles en C++
- 2. modèles de l'opérateur en C++
- 3. Modèles de classes et de modèles d'usine en C++
- 4. Mixins, modèles variadiques, et CRTP en C++
- 5. Affichage de modèles 3D en C++
- 6. Modèles de serveur réseau multithread en C#
- 7. membres statiques et des modèles en C++
- 8. Alternative pour les modèles en C++
- 9. Aide sur les modèles de modèles C++
- 10. Fermetures et modèles C++
- 11. C++ Modèles et héritage
- 12. C++ modèles de covariant
- 13. Modèles de conception de mutabilité en Objective C et C++
- 14. Problème de modèles C++
- 15. Déclaration étrange (modèles). C++
- 16. question concernant C++ modèles
- 17. Modèles et usines C++
- 18. Compilation de modèles C++
- 19. Comment faire pour convertir des modèles Excel 2003 en modèles Excel 2007 en utilisant C#?
- 20. C# génériques par rapport à C++ modèles
- 21. C# modèles multiples dans regex.replace()
- 22. Promotion d'entier, C++ et modèles
- 23. Modèles C# et constructeurs spéciaux
- 24. modèles d'agrégation booléennes dans C#
- 25. Problème avec les modèles C++
- 26. VS2008 En-tête C++ et modèles de classe
- 27. accès membres protégés de superclasse en C++ avec des modèles
- 28. sizeof (...) = 0 ou déclaration variable conditionnelle en C++ modèles
- 29. Vérification de l'héritage avec des modèles en C++
- 30. Encapsuler un type simple en utilisant des modèles C++
Je pense que vous vouliez dire "class template". Un modèle de classe comme 'template struct Foo {};' est une sorte de modèle, mais pas une sorte de classe. De même, un "modèle de fonction" est un autre type de modèle, et non une fonction. –
MSalters
Cela doit être une dupe –