[英]Declare class member to have internal linkage
基本上我在头文件中有类似以下的代码:
class Bar;
class Foo
{
public:
Bar GetBar();
};
class Bar
{
Foo CreateFoo() {}
};
Bar Foo::GetBar()
{...}
这段代码的问题是,一旦头文件包含在多个文件中,链接器就会抱怨说Foo::GetBar
有多个定义。 但是,我无法将其放在可行的类定义中,因为那时Bar尚未定义。 我不想将其放在单独的.cpp文件中,因为我正在编写的库的其余部分(无论如何都不算很重)大部分都是模板,无论如何我都必须将其放置在标头中有点麻烦,因为我必须将一个函数放在标头之外,因此需要链接其他内容。
因此,有没有解决此问题而无需创建另一个.cpp文件的方法?
inline Bar Foo::GetBar()
{...}
您可以内联声明此Foo::GetBar()
函数。 我应该解决多个定义。
使函数显式内联:
inline Bar Foo::GetBar()
{...}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.