參見 Why am I getting an error converting a Foo** --> Foo const**?, C++ FAQ。這裡摘錄文中附的例子。
class Foo { public: void modify(); // make some modification to the this object }; int main() { const Foo x; Foo* p; Foo const** q = &p; // q now points to p; this is (fortunately!) an error *q = &x; // p now points to x p->modify(); // Ouch: modifies a const Foo!! ... }
C/C++ 的轉型實在是一個我總是以為我搞清楚了, 但其實我從來沒搞清楚的東西 ...。想必過沒多久又會忘了原因吧。
http://www.ptt.cc/bbs/C_and_CPP/M.1274818178.A.7AD.html
回覆刪除ptt 有一篇類似問題也解說的相當精闢 :)