invalid initialization of reference
Ostatnio zmodyfikowano 2022-01-01 18:01
dunno Temat założony przez niniejszego użytkownika |
invalid initialization of reference » 2022-01-01 09:54:02 Błąd: invalid initialization of reference of type &const string& from expression of type &std::__cxx11::string* const&Posiadam skompilowany serwer gry MMORPG (niżej link do item.cpp) item.cpp: https://github.com/divinity76/YurOTS/blob/master/ots/source/item.cpp. Chciałem dodać tam funkcje serializeAttr jest ona mi niezbędna do zapisywania danych do bazy danych. Działała ona poprawnie lecz chciałem dodać specialDescription i tu zaczęły sie problemy bool Item::serializeAttr( PropWriteStream & propWriteStream ) const { if( getItemCountOrSubtype() != 0 ) { propWriteStream.addByte( ATTR_COUNT ); propWriteStream.addByte( getItemCountOrSubtype() ); } const std::string & _specialDesc = specialDescription; if( specialDescription ) { propWriteStream.addByte( ATTR_DESC ); propWriteStream.addString( _specialDesc ); } return true; }
Lecz wyskakuje mi błąd: item.cpp: In member function âbool Item::serializeAttr(PropWriteStream&) constâ: item.cpp:596:36: error: invalid initialization of reference of type âconst string â {aka âconst std::__cxx11::basic_string<char>&â} from expression of type âstd::__cxx11::string* constâ {aka âstd::__cxx11::basic_string<char>* constâ} const std::string& _specialDesc = specialDescription; ^~~~~~~~~~~~~~~~~~
|
|
pekfos |
» 2022-01-01 13:17:53 Referencja jest na zły typ. specialDescription jest wskaźnikiem. |
|
dunno Temat założony przez niniejszego użytkownika |
» 2022-01-01 14:58:04 czyli najprościej zrobić: const std::string & _specialDesc = * specialDescription; if( specialDescription && _specialDesc.length() > 0 ) { propWriteStream.addByte( ATTR_DESC ); propWriteStream.addString( _specialDesc ); }
tak? czy przekombinowane? XD |
|
pekfos |
» 2022-01-01 18:01:01 Tak chciałeś, tylko nie wiem po co. Najprościej byłoby używać specialDescription. if( specialDescription && specialDescription->length() > 0 ) { propWriteStream.addByte( ATTR_DESC ); propWriteStream.addString( * specialDescription ); } |
|
« 1 » |