我有以下实现:
A的标题:
class A
{
public:
foo();
};
A 有自己的 .cpp 文件,其中包含 foo() 的实现
//B的头部
#include "A.h"
class B
{
public foo();
};
注意:B 没有自己的标头
现在在 C.cpp 类中,我想重用 A 的标头和 Bo 的实现,所以在 C.cpp 中我这样做:
//C.cpp
#include "A.h"
....
B b;
b.foo();
..
当我编译上面的代码时,我一定会得到函数 foo() 的重新声明错误。我想知道是否有任何方法可以告诉 GNU 编译器采用 Bo 并省略 Ao.. 或者告诉编译器考虑包含实现的 make 文件中的第一个对象并忽略其余部分?
我正在使用 GNU v2.16