定数メンバー関数は、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;
}