我想写一些这样的代码:A
对象调用其类B
类型成员b
的成员函数DoSomething
,并在类{{1 } B
成员函数,它调用DoSomeOtherThing
的{{1}}成员函数。请参阅以下代码:
A类:
A
B组:
Notify
问题是我想保持函数内联,所以代码应该在头文件中。我不能简单地互相包容,因为它们可能导致相互包容,我不知道在这种情况下是否可以使用前瞻性声明。我可以在源文件中编写实现,但它们不是内联函数。那么,我该如何使代码工作呢?
答案 0 :(得分:1)
您可以将成员函数的定义移出类定义,并通过使用inline
显式地为其类外定义添加前缀,使它们保持内联(从而在标题中)。完成后,您会注意到
B
的类定义可以在A
的成员函数定义之前轻松移动,解决了从这些成员访问B
的问题,以及A
的类定义只需要B
的前向声明,因此在class B;
的定义之前添加A
会修复该问题。执行这两项更改足以解决您的问题。