gpt4 book ai didi

c++ - C++ 如何知道使用 Class.cpp 文件?

转载 作者:行者123 更新时间:2023-11-30 00:44:08 24 4
gpt4 key购买 nike

我有 main.cppMyClass.cppMyClass.h 文件。

main.cpp

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

int main(){
MyClass foo(123);
std::cout << foo.getNumber();
}

MyClass.h

#ifndef MYCLASS_H
#define MYCLASS_H

class MyClass
{
public:
MyClass(int n);
int getNumber();
private:
int fav_number;
};

#endif // MYCLASS_H

MyClass.cpp

#include "MyClass.h"

MyClass::MyClass(int n) {
fav_number = n;
}

MyClass::getNumber(){
return fav_number;
}

现在这个程序编译并作为 CodeBlocks 中的项目正常工作,但是如果我尝试单独编译 main(而不是在项目中),我会得到 undefined reference to MyClass::MyClass(int)。我认为这是因为在 MyClass.h 中没有函数体,因为它们在 cpp 文件中。

所以我的问题是:即使 MyClass.cpp 未包含在主程序或 header 中的任何位置,该程序如何编译为项目?

最佳答案

当您将 cpp 文件添加到 IDE 时,它会将其添加到编译源。取决于您的 IDE,例如 XCode 有部分编译源:

enter image description here

如果你在console中用g++编译,你需要在console中输入:

g++ main.cpp MyClass.cpp

这意味着要编译哪些源文件,之后链接器应该链接它们的 main.o MyClass.o 文件。 IDE 自己做所有这些事情。

关于c++ - C++ 如何知道使用 Class.cpp 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50116218/

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