为什么如果我们创建const一个类的实例并在构造函数中调用该类的成员函数,而这不在签名中const- 一切都很好?毕竟,当构造函数的主体被执行时,类实例已经被创建了?
class X
{
public:
X(...) : ...
{
f(); // ok
}
void f()
{
// ...
}
}
const X x; // ok
x.f() // error
为什么如果我们创建const一个类的实例并在构造函数中调用该类的成员函数,而这不在签名中const- 一切都很好?毕竟,当构造函数的主体被执行时,类实例已经被创建了?
class X
{
public:
X(...) : ...
{
f(); // ok
}
void f()
{
// ...
}
}
const X x; // ok
x.f() // error
constvolatile限定符仅在构造函数完成后应用于对象: