Tāpēc, ka tu nedrīksti const objektam izsaukt ne-const metodes.
Konversijas operatoriem vēlams būtu jābūt const. Tāpēc liec vien to const galā. Un ja metode ir const, tad tai vēlams ir atgriezt pointeri uz const char (vismaz tavā kodā):
operator const char * () const { return string; }
const corectness pirmajā reizē šķiet dīvaina lieta. Velāk, kad iebrauc, tad viss sāk šķist diezgan loģiski.
http://www.parashift.com/c++-faq-lite/const-correctness.html
(Lasīt komentārus)
Nopūsties: