gpt4 book ai didi

c++ - 尝试将类分离为 .h、.cpp 时出错

转载 作者:搜寻专家 更新时间:2023-10-31 01:05:58 25 4
gpt4 key购买 nike

这是我为了更好地理解这个问题而制作的一个最小程序。

ADT.h

#ifndef ADT_H
#define ADT_H

class ADT {
public:
void print();
};

#endif

ADT.cpp

#include <iostream>
#include "ADT.h"

using namespace std;

void ADT::print()
{
cout << "This program works." << endl;
}

测试ADT.cpp

#include <iostream>
#include "ADT.h"

using namespace std;

int main(void)
{
ADT sa;
sa.print();

return 0;
}

我用学校提供的 vim/minGW 编译器编译它:

g++ testADT.cpp

产生以下错误:

C:\Users\King\AppData\Local\Tempcc6eoWAP.o:testADT.cpp(.text+0x15 reference to 'ADT::print()'
collect2.exe error: ld returned 1 exit status

你能解释这个错误消息并指出我的代码中的错误吗?

最佳答案

您没有发布错误,但我发现您在标题中 void print() 之后缺少分号。

编辑:这是一个链接器错误。每个源文件都应该编译成一个目标文件;然后链接目标文件:

g++ -c -oADT.o ADT.cpp
g++ -c -otestADT.o testADT.cpp
g++ -oADT ADT.o testADT.o

您也可以像 michaeltang 的回答那样在一行中完成,但是您不能单独重新编译源代码(2 步法的扩展性更好)。

关于c++ - 尝试将类分离为 .h、.cpp 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21717483/

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