error: no matching function for call to 'SomeDataModelClass::SomeDataModelClass(MapModel*, Widget*)' , m_settings(&m_model, this)代码详解
时间: 2024-03-12 08:50:12 浏览: 42
这个错误提示是因为在你的代码中,尝试调用了一个名为 `SomeDataModelClass::SomeDataModelClass(MapModel*, Widget*)` 的构造函数,但是编译器没有找到与之匹配的构造函数。
假设你的代码中有这样一个类 `SomeDataModelClass`,它有一个 `MapModel` 类型的成员变量 `m_model` 和一个 `Widget` 指针类型的成员变量 `m_widget`。在类的构造函数中,你尝试使用成员初始化列表的方式来初始化这两个成员变量,代码如下:
```
class SomeDataModelClass {
public:
SomeDataModelClass(MapModel* model, Widget* widget) : m_model(model), m_widget(widget) {}
private:
MapModel* m_model;
Widget* m_widget;
};
MapModel* model = new MapModel();
Widget* widget = new Widget();
SomeDataModelClass data(model, widget);
```
但是编译器报错了,提示找不到与 `SomeDataModelClass::SomeDataModelClass(MapModel*, Widget*)` 匹配的构造函数。
这种情况可能出现的原因有很多,例如:
- `SomeDataModelClass` 类没有定义接受 `(MapModel*, Widget*)` 这样的构造函数。
- 构造函数的参数类型和个数不匹配。
- `MapModel` 或 `Widget` 类型没有定义或者不可见。
你需要检查一下代码,找出问题所在,并进行修复。