带有默认参数的构造函数参数列表不匹配的问题 5C

类中声明的带有默认参数的构造函数是这样的:

MapPoint(unsigned long id, Vector3d &position, Vector3d &best_viewagl, const Mat &best_descr = Mat());

类外定义的构造函数是这样的:

MapPoint::MapPoint(unsigned long id, Vector3d &position, Vector3d &best_viewagl, const Mat &best_descr)
    : id_(id), coor_(position), best_viewagl_(best_viewagl), best_descr_(best_descr), good_(true), visible_times_(1), matched_times_(1)
{
}

调用构造函数是这样的:

new MapPoint(factory_id_++, Vector3d(0, 0, 0), Vector3d(0, 0, 0)));

然后提示:

图片说明

我就不明白哪里出错了?

c++

2个回答

没有符合你写的实参的函数,你的实参只写了三个,但是看类的声明应该有四个,所以不匹配。

qq_34731182
qq_34731182 第四个不是默认参数吗,可以不用传参啊
7 个月之前 回复

错误提示显示不全。你检查一下,factory_id是usigned long类型吗?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问