代码之家  ›  专栏  ›  技术社区  ›  Grizzly

声明类成员具有内部链接

c++
  •  0
  • Grizzly  · 技术社区  · 16 年前

    基本上,我在头文件中有这样的代码:

    class Bar;
    class Foo
    {
    public:
       Bar GetBar();
    };
    
    class Bar
    {
        Foo CreateFoo() {}
    };
    
    Bar Foo::GetBar()
    {...}
    

    Foo::GetBar . 但是,我不能将它放在类定义中,因为在这一点上没有定义Bar。我不想把它放在一个单独的.cpp文件中,因为我正在编写的库的其余部分(不管怎么说,它没有那么重)大多是模板,我必须将它们放在一个头文件中,而且仅仅因为我必须在头文件外放一个函数,就需要链接其他内容,这似乎有点令人不安。

    3 回复  |  直到 16 年前
        1
  •  8
  •   moonshadow    16 年前
    inline Bar Foo::GetBar()
    {...}
    
        2
  •  0
  •   Didier Trosset    16 年前

    你可以申报这个 Foo::GetBar() 函数内联。我应该解决多重定义。

        3
  •  0
  •   anon anon    16 年前

    inline Bar Foo::GetBar()
    {...}