Avendo questo insieme di oggetti e dichiarazioni:Non capendo C++ tipo non corrispondente: const Foo * a Foo * const &
QSet<Foo*> set;
iterator QSet::insert(const T & value) //type of the function I want to call
const Foo * get() const //type of the function I use to get the argument
set.insert(get()); //the line showing up as error
ottengo l'errore "non noto di conversione per argomento 1 da 'const Foo *' a ' Foo * const & ". Credo di avere problemi a leggere questi tipi perché non ho idea di cosa dovrei fare per farlo funzionare.
Da quello che ho letto, la parola chiave const vale per il tipo alla sua sinistra, con l'eccezione di un const di livello superiore che può essere scritto alla sinistra del tipo si applica. La mia ipotesi sarebbe che devo convertire get() a un riferimento, ma non sono sicuro di come farlo.
Questo non è "primo' const' ". 'get()' restituisce un puntatore a "' const Foo' ", non un puntatore' const'. – Barry
Quindi la mia comprensione che un 'const' all'inizio si applica a tutto ciò che è alla sua destra era sbagliato? A che cosa si applica esattamente tale 'const '? –