Ich schaute mich um und versuchte eine Antwort darauf zu finden. Ist es möglich, die Member-Funktionen einer Template-Klasse in einem Namespace innerhalb einer cpp-Datei zu definieren? Ich bekomme einen Fehler, wenn ich es versuche.Vorlagenelement-Memberfunktionen in einem Namespace definieren?
Hier sind die zwei Dateien, die ich versuche zu kompilieren.
ArrayList.hpp
template<typename T>
class ArrayList{
ArrayList();
~ArrayList();
}
ArrayList.cpp
#include "ArrayList.hpp"
namespace{
template<typename T>
ArrayList<T>::ArrayList(){
/* function body goes here */
}
ArrayList<T>::~ArrayList(){
/* function body goes here */
}
Compilerfehler
error: cannot define or
redeclare 'ArrayList<T>' here because namespace '' does not enclose
namespace 'ArrayList'
ArrayList<T>::ArrayList()
Namespace benannt werden sollte, das heißt: 'Namespace myarray {' – Serge
@Serge Sie anonyme Namespaces in C haben kann ++ auch – Curious
@Serge führt zu einem ähnlichen Fehler -> ‚kann nicht definieren oder neu deklarieren‚Arraylist‘hier Weil Namespace 'myarray' nicht umschließt Namespace 'ArrayList' ArrayList :: ArrayList() ' –
user87002