2016-12-13 3 views
1

ich mit Vorlagen att alle Vererbung nicht verstehen ..C++ Vererbung mit Vorlagen und Sichtbarkeit

template <typename T> 
class Mere 
{ 
protected: 
    Mere(); 
}; 

class Fille2 : public Mere<int> 
{ 
protected: 
    Fille2(){ 
     Mere(); 
    } 
}; 


int main(int argc, char** argv) { 

    return 0; 
} 

Warum habe ich diesen Fehler?

main.cpp:22:5: error: 'Mere<T>::Mere() [with T = int]' is protected 
Mere(); 

Und alles funktioniert, wenn ich "Mere()" in der Öffentlichkeit setzen? Ich kann nicht Funktionen für meine Klasse "Mere" "geschützt" haben? Warum?

+3

das ist nicht, wie Sie Konstrukteure von einer übergeordneten Klasse in C++ aufrufen ... siehe [hier] (http: // melpon. org/wandbox/permlink/DtiZ3q60YyVytvju), wie es gemacht werden kann –

Antwort

Verwandte Themen