问题
#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();
}
The above code can't be compiled, could anyone of you tell me why?
回答1:
You need to initialize it. This is a known problem with the spec.
回答2:
Initialize it as:
const A ac = A();
Working code : http://www.ideone.com/SYPO9
BTW, this is not initializaiton : const A ac(); //deceptive - not an initializaiton!
来源:https://stackoverflow.com/questions/5335836/why-a-const-object-of-an-empty-class-cant-be-created