gpt4 book ai didi

C++ 实现和头文件链接

转载 作者:行者123 更新时间:2023-11-27 23:09:34 24 4
gpt4 key购买 nike

我很确定这可能很简单,因为我已经按照其他人已经在该网站上所做的事情进行操作,但是无论我如何设置我的文件和#includes,我都会不断收到链接错误。这很奇怪,这里的任何人都是我的代码。

这三个文件不会用 g++ main.cpp Fraction.cpp 编译。

我收到这个错误:

Undefined symbols for architecture x86_64:
"Fraction::simplify(int, int)", referenced from:
_main in w2-TsJ6zT.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

这是我的 main.cpp

#include <iostream>
using namespace std;
#include "Fraction.h"

int main() {
Fraction fraction;
int num, den;
fraction.simplify(num, den);
}

这是我的 Fraction.h

class Fraction{

private:

//Variables
int numerator;
int denominator;
public:

//Methods

void simplify(int numerator, int denominator);
};

最后是我的 Fraction.cpp 文件。

#include <iostream>
using namespace std;
#include "Fraction.h"

void simplify(int numerator, int denominator){

//definition here

}

感谢任何帮助和信息。谢谢!

最佳答案

void simplify(int numerator, int denominator){

//definition here

}

应该是

void Fraction::simplify(int numerator, int denominator){

//definition here

}

按照您定义的方式,simplify 是全局范围内的一个简单函数,而第二个变体实现了先前 Fraction 的成员函数 simplifyFraction.h 中声明。链接错误告诉您您从未实现过此方法(因为您实际上实现了一个同名的新函数)。

关于C++ 实现和头文件链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21151197/

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