gpt4 book ai didi

对象构造中的 C++ 错误。未解析的外部符号

转载 作者:行者123 更新时间:2023-11-28 02:16:17 25 4
gpt4 key购买 nike

我有三个文件,一个用于测试我的函数的 main.cpp 文件,一个类的头文件,以及声明我的对象和成员的 cpp 文件。

我正在尝试在主文件中构造我的对象 Matrix 并收到错误:Error: LNK2019 unresolved external symbol "public: __thiscall Matrix::Matrix(int,int)"( ??0Matrix@@QAE@HH@Z) 在函数 _main Matrix Project 中引用

我只能假设这意味着我的构造函数有问题。我按如下方式使用它,但它们都不起作用:

    Matrix* matrix = new Matrix(2, 3);
Matrix test = Matrix(2, 3);

构造函数在*.h文件中声明如下:

Matrix(int numRows, int numCols);

然后在*.cpp文件中声明如下:

public:
Matrix(int numRows, int numCols) {
rows = numRows;
cols = numCols;
arr = new double*[numCols];
for (int i = 0; i < numRows; ++i) {
for (int x = 0; x < numCols; ++x) {
arr[i][x] = 0;
}
}
}

感谢任何帮助。我确定我遗漏了一些愚蠢的东西。

提前致谢!

[编辑]

为了提供信息,我想我会说变量 rowscolsarr 都在构造函数作为类的 private 成员。

最佳答案

在 .cpp 文件中,您应该将已声明 的方法的定义 放入 header (.h) 文件中。因此,您的 .cpp 文件应如下所示:

Matrix::Matrix(int numRows, int numCols) { }

您正在做的是复制 .cpp 文件中的类定义,这就是为什么会出现链接错误。

关于对象构造中的 C++ 错误。未解析的外部符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33925392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com