0

我有以下代码:-

class A : public B {
  public:
    _container (B* b) { 
      container_ = b;
    }
  private:
    B* container_;
};

void foo(const A& a, const B& b) {
  A new_a (a);
  new_a._container(&b);
}

如果我尝试使用 icpc12 编译它,我会得到:-

error: no instance of overloaded function "A::_container" matches the argument list
            argument types are: (const B *)
            object type is: A
      new_a._container (&b);

现在,我知道错误的第一行意味着被调用的函数和可用的函数定义之间存在某种类型的不匹配,我正在尝试使用错误消息的其他两行来缩小问题的范围。

第二行和第三行是什么意思?

4

1 回答 1

4

该函数将非常量指针作为参数,并且您正在传递一个 const 指针。

于 2012-06-21T00:48:49.903 回答