【发布时间】:2016-07-06 17:04:05
【问题描述】:
假设您有两个内容相同的实现源文件:
// foo{a,b}.cpp
class Foo {
public:
void bar();
}
void Foo::bar() { std::cout << "bar\n"; }
实现一个普通函数(不是成员方法),我会简单地将这个方法标记为static。但这在方法声明上有不同的含义,不能在实现时指定。
如何更改foob.cpp 以便在编译和链接两个文件时不会出现链接器错误?
【问题讨论】:
-
哦...我想说“将包含文件放在命名空间中”,但后来我读到了this。哦,好吧,我相信有一个很好的答案。
-
好吧,我不能完全看出你真正想在这里解决哪个问题,但闻起来像 pimpl idiom 应该是正确的方法(假设
Foo已经有一个公开声明)。 -
@πάνταῥεῖ:我认为 OP 已经过度简化了他的问题,但假设 2 个不同的助手类具有相同(糟糕的)名称。
-
@Jarod42 啊,这个假设很有意义,也许 OP 可以澄清这个问题。
-
@Jarod42 你的假设是正确的,很抱歉没有更清楚。