基本上我在头文件中有这样的代码:
class Bar;
class Foo
{
public:
Bar GetBar();
};
class Bar
{
Foo CreateFoo() {}
};
Bar Foo::GetBar()
{...}
此代码的问题在于,只要头文件包含在多个文件中,链接器就会抱怨Foo::GetBar
有多个定义。但是我不能把它放在类定义中哪个可行,因为Bar没有在那时定义。我不想把它放在一个单独的.cpp文件中,因为我正在编写的库的其余部分(不管怎么说都不是那么重)主要是我不得不放在标题中的模板,看起来似乎因为我不得不在标题之外添加一个函数,所以要求链接其他东西有点烦人。
那么无论如何都可以在不创建另一个.cpp文件的情况下解决这个问题吗?
答案 0 :(得分:8)
inline Bar Foo::GetBar()
{...}
答案 1 :(得分:0)
您可以内联声明此Foo::GetBar()
函数。我应该解决多个定义。
答案 2 :(得分:0)
明确内联函数:
inline Bar Foo::GetBar()
{...}