gpt4 book ai didi

c++ - 在主类c++中使用数据结构方法

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

我试图在我的主要方法中访问我的元素结构中的方法。我不断收到错误信息

"Undefined symbols for architecture x86_64:

"Element::Element()", referenced from:

_main in Element.o

_main in main.o

ld: symbol(s) not found for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to seeinvocation)"

元素标题

#ifndef Element_hpp
#define Element_hpp

struct Element {
public:
int getNumber(void);
void setNumber(int n);
int getSteps();
void setSteps();
Element();
private:
int number;
int stepN;
};

#endif /* Element_hpp */

元素类

#include "Element.hpp"
#include "main.cpp"

int Element::getNumber() {
return number;
}

void Element::setNumber(int n) {
number = n;
setSteps();
}

int Element::getSteps() {
return stepN;
}

int steps(int n) {
int i = 0;
int j = n;
while(j != 1) {
if(j % 2 == 1) {
j = (3 * j + 1) / 2;
i = i + 2;
}
else if(j % 2 == 0) {
j= j / 2;
i= i + 1;
}
}
return i;
}

void Element::setSteps() {
stepN = steps(number);
}

主类

#include <iostream>
#include <String>
#include <fstream>
#include "Element.hpp"


int main(int argc, const char * argv[]) {
std::ofstream data;
data.open("data.txt");
int end = 1000;
Element* e = new Element[end];
for(int i = 0; i < end; i++) {
e[i].setNumber(i);
e[i].setSteps();
}
heapSort(e, end);
printArray(e, end);
data.close();
return 0;
}

最佳答案

你永远不应该#include CPP 文件。相反,您应该链接它们。最直接的方法是从命令行:

$ g++ main.cpp element.cpp

我建议您阅读 C++ 构建过程,包括编译和链接之间的区别。

关于c++ - 在主类c++中使用数据结构方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42381790/

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