``` Chart *m_chart = new Chart;```error: no matching function for call to 'Chart::Chart()'
时间: 2024-09-12 19:16:27 浏览: 35
image-matching.rar_image matching_site:www.pudn.com_同名点匹配_相关系数_相
您遇到的错误信息“error: no matching function for call to 'Chart::Chart()'”表明您尝试创建一个`Chart`类的对象,但是编译器找不到合适的构造函数来完成这个任务。这通常是因为以下几个原因:
1. `Chart`类可能没有默认构造函数。在C++中,如果没有为类提供任何构造函数,编译器会生成一个默认构造函数。如果已经提供了其他构造函数,编译器则不会自动生成默认构造函数。这种情况下,如果需要一个不带参数的构造函数来初始化对象,你需要在`Chart`类中显式地声明并定义它。
2. 语法错误。如果`new`关键字后面的`Chart`后面多出了空格,或者在其他地方出现了语法错误,也会导致这种编译错误。
为了解决这个问题,你可以检查`Chart`类的定义,确保有一个匹配的构造函数。如果没有默认构造函数,你需要添加一个或者在创建对象时提供必要的参数。另外,检查是否有任何语法错误。
示例代码可能如下所示:
```cpp
class Chart {
public:
// 如果存在其他构造函数,添加下面的默认构造函数
Chart() {
// 默认构造函数的实现
}
};
// 在代码的其他部分
Chart *m_chart = new Chart(); // 注意这里使用了括号
```
阅读全文