我已经编写了一个Array类来创建1d,2d和3d数组,并且它对于每个测试都可以正常工作:2d情况下该数组类的构造函数示例:
Array::Array( int xSize, int ySize )
{
xSize_ = xSize;
ySize_ = ySize;
zSize_ = 1;
vec.resize(xSize*ySize);
}
它工作正常,但是当我需要在其他构造函数中使用此构造函数时,出现“没有匹配的函数错误”,
我的代码的一部分:
class StaggeredGrid
{
public:
StaggeredGrid ( int xSize1, int ySize1, real dx, real dy ) : p_ (2,2) {}
protected:
Array p_;
完全错误:
No matching function for call to Array::Array()
Candidates are : Array::Array(int)
Array::Array(int, int)
Array::Array(int, int, int)
如果有人知道问题我将不胜感激
最佳答案
您的Array类具有三个构造函数,分别采用一个,两个和三个整数。如果StaggeringGrid具有默认的构造函数,它将根据您所告诉的内容调用Array::Array()(该函数不存在)。
关于c++ - 在另一个构造函数中调用构造函数(没有匹配的函数可以调用…)c++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19846126/