Parameter &

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
DBGTMaster
Beiträge: 190
Registriert: 19. August 2010 10:00

Parameter &

Beitrag von DBGTMaster »

Hallo,

ich habe eine Methode:

Code: Alles auswählen

template<typename DATA_TYPE>
void TcpAbstractCommand::_streamWrite(DATA_TYPE &var) {
    UtilDataStream::write(_dataStreamWrite, var);
}
Rufe ich nun auf:

Code: Alles auswählen

_streamWrite(_user->getColumn(column));
So erhalte ich den Fehler:

Code: Alles auswählen

error: no matching function for call to 'xyz::_streamWrite(QVariant)'
note: candidate is:
note: void xyz::_streamWrite(DATA_TYPE&) [with DATA_TYPE = QVariant]
note:   no known conversion for argument 1 from 'QVariant' to 'QVariant&'
Muss ich hier nun oben den Wert zwischen speichern und dann überegben, oder gibt es hier bessere Wege?

Code: Alles auswählen

    QVariant write = _user->getColumn(column);
    _streamWrite(write);
lG
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: Parameter &

Beitrag von franzf »

Ja, denn _streamWrite erwartet eine NONCONST Referenz, für die als Parameter MUSS eine Instanz existieren.
Lösung:
_streamWrite klingt so, als woltest du den Parameter in einen Stream schreiben. Der Parameter bleibt unangetastet:
-> Mach einen DATA_TYPE const& draus.
Antworten