2017-04-17 2 views
0

Fehler beim Kompilieren des folgenden Programms mit GCC/G ++ - Compiler unter Cygwin - /src/Template_1.cpp:66:2: Fehler: erwartete primäre Ausdruck vor 'Vorlage' Vorlage TemplateCall: : VorlageAnruf; ^C++ - Vorlage - primärer Ausdruck benötigt

Mein Quellcode ist wie folgt: -

#include<iostream> 
#include<cstdarg> 


using namespace std; 

template<class T> 
class TemplateCall 
{ 
     private: 
       T dataValue; 
     public: 
       TemplateCall(T somethingValue); 
       void showTTParam(); 
}; 


template<class T> 
TemplateCall<T>::TemplateCall(T somethingValue) 
{ 
     cout << endl << " Calling TemplateCall - constructor " << endl; 
     dataValue = somethingValue; 
} 

template<class T> 
void TemplateCall<T>::showTTParam() 
{ 
     cout << endl << " TemplateTemplateParam - showTTParam " << endl; 
     cout << endl << " dataValue - showTTParam " << dataValue << endl; 
} 



int main() 
{ 

     template TemplateCall<int>; 

     return 0; 
} 
+1

Was versuchen Sie mit der Vorlage TemplateCall ; '? –

Antwort

5

eine Instanz von TemplateCall<int> zu erstellen, müssen Sie verwenden:

TemplateCall<int> obj; 

aktualisieren, als Reaktion auf OP Kommentar

Um die Klassenvorlage explizit zu instanziieren, verwenden Sie

template class TemplateCall<int>; 

aber Sie müssen es außerhalb aller Funktionen verwenden.

+0

Eigentlich muss ich mit "explizite Instanziierung" testen. –

+0

@ NANDUMISHRA, siehe das Update. –

+0

Vielen Dank. :) –

Verwandte Themen