Jestem tutaj patrząc na jakiś kod C++ i nie rozumiem czegoś. Jest to nieistotne, ale pochodzi z samouczka YARP (robot middleware), który pasuje do dokumentacji.Subscripting a reference to const
virtual void getHeader(const Bytes& header)
{
const char *target = "HUMANITY";
for (int i=0; i<8 && i<header.length(); i++)
{
header.get()[i] = target[i];
}
}
Nagłówek jest teraz odniesieniem do stałej i dlatego nie można go modyfikować w ramach tej funkcji. get
jest na nim wywoływany, jego prototyp to char *get() const;
. W jaki sposób można subskrybować i modyfikować header.get()
? Program kompiluje się dobrze. Być może nie zrozumiałem, co się tutaj dzieje, ale opieram się na tym, co przeczytałem w C++ Primer ...
Bardzo doceniam małe wyjaśnienie!
Miłego dnia,
'char * get() const;' oznacza, że wskaźnik do znaku nie może być modyfikowany. pointee może być. – octoback
myślisz o "char * const get()". "Const" po prawej stronie funkcji oznacza "nie modyfikuje niepodlegających zmianom członów" – kfsone