成员函数中的 const
class T { int *m_p; void foo() const { *m_p = 1234; } };
不谈 'm_p' 的初始化及资源释放问题.
在 const member function 中, 竟然能修改类的成员变量? 这并不奇怪, 因为 const 成员函数的实质是: 不改变类的成员变量的值. 由于 'm_p' 是一个指针, 所以 const 的保护作用只能做用于不修改这个指针的值, 而不能限制指针所指向的内存的值.
reference:
class T { int *m_p; void foo() const { *m_p = 1234; } };
不谈 'm_p' 的初始化及资源释放问题.
在 const member function 中, 竟然能修改类的成员变量? 这并不奇怪, 因为 const 成员函数的实质是: 不改变类的成员变量的值. 由于 'm_p' 是一个指针, 所以 const 的保护作用只能做用于不修改这个指针的值, 而不能限制指针所指向的内存的值.
reference: