image.png

    1. #include <iostream>
    2. #include <cstring>
    3. using namespace std;
    4. struct A
    5. {
    6. int v;
    7. A(int vv) : v(vv) {}
    8. const A *getPointer() const
    9. {
    10. return this;
    11. }
    12. };
    13. int main()
    14. {
    15. const A a(10);
    16. const A *p = a.getPointer();
    17. }

    这个题实在是比较坑呀,坑太多了。

    • 首先 const A * p = a.getPointer(); 是第一道坎,说明getPointer()这个方法应该是返回const A *
    • 这还不够,因为它上面 const A a(10); 也是说明你这个getPointer()必须是一个常函数,因为常变量只能调用常函数