11
#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();
}

上記のコードはコンパイルできませんが、その理由を教えてもらえますか?

4

2 に答える 2

13

初期化する必要があります。これは、仕様に関する既知の問題です。

于 2011-03-17T06:57:15.883 に答える
4

次のように初期化します。

const A ac = A();

作業コード: http://www.ideone.com/SYPO9


ところで、これは初期化ではありません: const A ac(); //deceptive - not an initializaiton!

于 2011-03-17T06:59:17.130 に答える