提问人:Jess 提问时间:1/15/2017 更新时间:1/15/2017 访问量:150
错误:没有已知的从“foo1*”到“const foo2&”的转换
error: no known conversion from 'foo1*' to 'const foo2&'
问:
我可以知道如何对参数执行操作,以便我可以调用复制构造函数吗?a
main()
class foo1 {
public:
virtual void display() = 0;
};
class foo2 : public foo1
{
public:
foo2();
foo2(const foo2& a);
void display()
{
cout << "Copy constructor works\n";
}
};
int main()
{
foo1* a = new foo2;
foo1* b = new foo2(a);
}
如果有人能帮忙,谢谢
答:
0赞
yahoo5000
1/15/2017
#1
您的复制构造函数需要引用(地址),并且您尝试传递指针。因此,您希望创建实际对象,而不是指针或服从指针
评论
*dynamic_cast<foo2*>(a)
undefined reference to
foo1* b = new foo2(*dynamic_cast<foo2*>(a));