#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?
You need to initialize it. This is a known problem with the spec.
Initialize it as:
Working code : http://www.ideone.com/SYPO9
BTW, this is not initializaiton :
const A ac(); //deceptive - not an initializaiton!