可能重複:
Invoking a nonconst method on a member from a const method爲什麼const成員函數能夠通過成員指針調用非const成員函數?
常量成員函數可以調用通過指針成員變量的非恆定成員函數在C++中,它是如預期? 下面給出的代碼片段正在編譯
#include <iostream>
class S {
public:
void hi() {
std::cout << "Hi" << std::endl;
}
};
class T {
public:
T()
: s(new S())
{}
~T()
{
delete s;
}
void hi() const {
s->hi();
}
private:
S * s;
};
int main(int argc, char ** argv) {
T t;
t.hi();
return 0;
}
我們還沒有在類中聲明S * const s,那麼它如何可以是一個常量指針呢? – Kenta