我有一个单独的对象文件中声明一个类时,然后在另一个文件中的主要功能使用它的一个问题声明的类:C++的问题,在一个单独的对象文件
main.cpp中:
#include <helloclass.hpp>
using namespace std;
int main() {
Hello hi;
hi.hello();
return 0;
}
helloclass.cpp:
#include <iostream>
using namespace std;
class Hello {
public:
void hello() {
cout << "Hello world\n";
}
Hello() {}
};
helloclass.hpp:
class Hello {
public:
void hello();
Hello();
};
然后,我跑到下面的命令:
g++ -I. -c main.cpp
g++ -c helloclass.cpp
g++ -o main main.o helloclass.o
不过,最后的命令提供了以下的输出:
main.o: In function `main':
main.cpp:(.text+0x1f): undefined reference to `Hello::Hello()'
main.cpp:(.text+0x2b): undefined reference to `Hello::hello()'
collect2: error: ld returned 1 exit status
对我来说,好像我失去了一些东西很明显的。有谁知道如何解决这一问题?
您不应该尝试通过试错法在C++中进行编程。你应该去得到一个[好书](https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) – Rakete1111
谢谢,但我已经得到了一个。 – asc11