gpt4 book ai didi

c++ - 未定义的类方法引用

转载 作者:行者123 更新时间:2023-11-30 02:49:35 26 4
gpt4 key购买 nike

我有三个文件method.h,method.cpp,main.cpp

方法.h

#ifndef METHOD_H
#define METHOD_H

class method {

public:
void printThisMethod();
private:

};

#endif

方法.cpp

#include "method.h"
inline void method::printThisMethod() {
//some methods done here
}

主要.cpp

 #include <iostream>
#include <string>
#include "method.h"

int main() {
method outputMethod;
outputMethod.printThisMethod;
}

我遇到了错误,

undefined reference to method::printThisMethod.

请帮忙谢谢

最佳答案

要么删除 inline 关键字,要么将定义移到标题中(保留 inline)。

inline 用于放宽单一定义规则以允许在 header 中定义。但是,它还要求在使用它的每个翻译单元中都有一个定义,这通常要求定义位于标题中。

如果没有 inline,则适用正常的链接规则,并且在一个翻译单元中必须有一个定义。如果您从现有代码中删除 inline,这就是您所拥有的。

(您还需要在函数调用 outputMethod.printThisMethod() 中添加圆括号,但可能您的真实代码中包含圆括号,否则不会出现链接错误。)

关于c++ - 未定义的类方法引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21112747/

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