qui ancora sperimentando con i modelli. Cercando di scrivere un modello di classe di elaborazione messaggiModello di classe nel modello di classe in C++
template <typename T> class MessageProcessor {
//constructor, destructor defined
//Code using t_ and other functions
foo(void) {
//More code in a perfectly fine method
}
private: T *t_
};
Tutto definito in un file di intestazione. Ho costruito e testato la mia classe e tutto va bene. Ora, io sto cercando di fare questo:
template <typename T> class MessageProcesor {
//Same stuff as before
foo(void) {
//Same code as before in foo, but one new line:
t_->getMessageSender<MessageType>();
}
private: T *t_;
};
Tuttavia, questa linea mi dà un errore di cattiva espressione di tipo prima di '>' token.
Ho aggiunto i file di intestazione necessari per definire cos'è un MessageType. Ho usato questa funzione molto tempo prima, ma non in questo contesto.
Sospetto che il compilatore non apprezzi il fatto che la funzione template sia completamente definita (specializzata?) All'interno di un modello di classe non definito (non specificato?). Non sono completamente soddisfatto di ciò che rende un modello "specializzato". La maggior parte delle spiegazioni si concentra sui concetti di "pieno" o "parziale", ma non su ciò che lo rende specializzato in primo luogo.
Scusa se desideri vedere più codice. Non ho accesso a Internet sul posto di lavoro, ed è qui che sto facendo questo, quindi devo mettere tutto nel mio "blockpad" mentale e portarlo a casa.
Inserire qui il codice funzione getMessageSender. –
il cibo non ha un tipo di reso, questo è il tuo problema –
Siete tutti corretti nelle vostre osservazioni. Tuttavia, quelli erano errori di battitura. Il vero problema era la mancanza della parola chiave 'template' come risposta da Faisal – user106740