我有3个文件
dimentions.h:

namespace mtm {
    class Dimensions {
        int row, col;
        //some code
    };
}
IntMatrix.h:
#include "dimentions.h"
namespace mtm
{
    class intMatrix
    {
    private:
        int** data;
        int col;
        int row;

    public:
        intMatrix(Dimensions dims, int num=0);
        //some code
    };

    //the line bellow is where I get the error
    intMatrix(Dimensions dims, int num=0): col(dims.getCol()),row(dims.getRow()) ,data(new int*[dims.getRow()])
    {
        for(int i=0;i<dims.getCol())
        {
            data[i](new int[dims.getCol]);
        }
        for(int i=0;i<dims.getRow();i++)
        {
            for(int j=0;j<dims.getCol();j++)
            {
                data[i][j]=num;
            }
        }
    }
}
编译器会说:“小”之前应有“)
当我将鼠标置于暗处时,vs代码显示:“error-type mtm::dims”
但暗淡不是一种可变的类型。
IntMatrix.cpp:
#include "IntMatrix.h"
using namespace mtm;
//some code
在IntMatrix.cpp中,问题是它不能识别什么是Dimentions,但是可以识别什么是intMatrix。

最佳答案

欢迎来到StackOverflow!
编译器消息有时会引起误解,并且在您的情况下会出现错误,因为您在实现中重复了默认值。这可能是编译器抱怨的错误。
编辑
作为drescherjm的指针,您还忘记了将类名添加到构造函数中
正确的定义应为:

intMatrix::intMatrix(Dimensions dims, int num): ...
之后,如果您仍然有错误,请告诉我。

10-07 20:32