#include <iostream>
class A {
public:
void foo() const {
std::cout << "const version of foo" << std::endl;
}
void foo() {
std::cout << "none const version of foo" << std::endl;
}
};
int main()
{
A a;
const A ac;
a.foo();
ac.foo();
}
以上代码无法编译,你们谁能告诉我为什么?
您需要初始化它。 This is a known problem with the spec。
初始化为:
const A ac = A();
工作代码:http://www.ideone.com/SYPO9
BTW,这是not初始化:const A ac(); //deceptive - not an initializaiton!