如何在单独的源文件中定义成员函数?
How to define member function in separate source file?
考虑以下两个程序。
p1.cpp
#include <iostream>
struct test
{
void fun();
};
int main()
{
test t;
t.fun();
}
p2.cpp
#include <iostream>
void test::fun()
{
std::cout<<"fun() is called\n";
}
我正在编译如下。
g++ -c -o p1.o p1.cpp
g++ -c -o p2.o p2.cpp <--------- This gives me compiler error.
如何解决这个错误?我做错了什么?
基本上,您需要:
- 新建文件test.h
- 将您的
struct test { ... };
移动到文件 test.h
- 将 `#include "test.h" 添加到您的两个源文件中。
- 重新编译这两个文件。
您可能需要考虑使用 makefile 来编译您的文件,并将对 test.h
的依赖添加到 p1.cpp 和 p2.cpp,以便在您修改 test.h
考虑以下两个程序。
p1.cpp
#include <iostream>
struct test
{
void fun();
};
int main()
{
test t;
t.fun();
}
p2.cpp
#include <iostream>
void test::fun()
{
std::cout<<"fun() is called\n";
}
我正在编译如下。
g++ -c -o p1.o p1.cpp
g++ -c -o p2.o p2.cpp <--------- This gives me compiler error.
如何解决这个错误?我做错了什么?
基本上,您需要:
- 新建文件test.h
- 将您的
struct test { ... };
移动到文件 test.h - 将 `#include "test.h" 添加到您的两个源文件中。
- 重新编译这两个文件。
您可能需要考虑使用 makefile 来编译您的文件,并将对 test.h
的依赖添加到 p1.cpp 和 p2.cpp,以便在您修改 test.h