为什么不能创建一个空类的const对象

问题描述 投票:11回答:2
#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();
}

以上代码无法编译,你们谁能告诉我为什么?

c++ const empty-class
2个回答
13
投票

您需要初始化它。 This is a known problem with the spec


4
投票

初始化为:

const A ac = A();

工作代码:http://www.ideone.com/SYPO9


BTW,这是not初始化:const A ac(); //deceptive - not an initializaiton!

© www.soinside.com 2019 - 2024. All rights reserved.