我有以下代码: -
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);
现在,我明白错误的第一行意味着被调用的函数和可用的函数定义之间存在某种类型不匹配,我试图使用错误的另外两行来缩小问题范围信息。
第二行和第三行是什么意思?
答案 0 :(得分:4)
该函数将非const指针作为参数,并且您传递一个const指针。