为什么不能创建空类的 const 对象
#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();
}
上面的代码无法编译,谁能告诉我为什么吗?
#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?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你需要初始化它。 这是规范的一个已知问题 。
You need to initialize it. This is a known problem with the spec.
将其初始化为:
工作代码: http://www.ideone.com/SYPO9
顺便说一句,这是 <强>不初始化:const A ac(); //欺骗性 - 不是初始化!
Initialize it as:
Working code : http://www.ideone.com/SYPO9
BTW, this is not initializaiton :
const A ac(); //deceptive - not an initializaiton!