gpt4 book ai didi

c++ - 导致无法解析的外部符号的常量引用参数

转载 作者:行者123 更新时间:2023-11-30 04:06:14 25 4
gpt4 key购买 nike

下面是我写的一些代码的简化版本。这段代码到目前为止工作正常

类.h

namespace myNamespace
{
class myClass
{
public:

myClass(unsigned width, unsigned height);
myClass(OtherClass& other, unsigned width, unsigned height);
~myClass(){};

private:
unsigned width;
unsigned height;
};
}

类.cpp

#include "class.h"

namespace myNamespace
{
myClass::myClass(unsigned width, unsigned height)
{
//code
}

myClass::myClass(OtherClass& other, unsigned width, unsigned height) : myClass(width, height)
{
//code
}
}

(OtherClass 在 myNamespace 中的其他地方定义并包含在内)

使用 OtherClass 的构造函数不会改变 other 因此使其成为 const 是合适的。

但是当我将 .cpp 和 .h 中的构造函数都更改为使用 const OtherClass& 时,它给我错误:

error LNK2019: unresolved external symbol "public: __thiscall myNamespace::myClass::myClass(class myNamespace::OtherClass &,unsigned int,unsigned int)" (??0CarbonMatrix@molecule@@QAE@AAVCarbonString@1@II@Z) referenced in function _wmain path\main.obj

据我所知,只要您在声明和定义中都使用 const,就不会导致此错误。

所以我的问题是:出了什么问题以及如何解决?

最佳答案

该错误表明,您实际上没有更改头文件中的声明,或者更改后没有重新编译所有源文件。

仔细检查您是否确实在头文件中将其更改为 const OtherClass&。然后重新编译整个项目,即不仅是class.cpp,还有main.cpp。

关于c++ - 导致无法解析的外部符号的常量引用参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22974250/

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