我知道按定义,内联成员函数应该进入标题.但是如果不能将函数的实现放入标题呢?让我们来看看这种情况:
档案啊
#pragma once
#include "B.h"
class A{
B b;
};
Run Code Online (Sandbox Code Playgroud)
文件Bh
#pragma once
class A; //forward declaration
class B{
inline A getA();
};
Run Code Online (Sandbox Code Playgroud)
由于圆形包括我必须把实施getA成
B.cpp
#include "B.h"
#include "A.h"
inline A B::getA(){
return A();
}
Run Code Online (Sandbox Code Playgroud)
编译器会内联getA吗?如果是这样,哪个内联关键字是重要的(标题中的那个或.cpp文件中的那个)?是否有另一种方法将内联成员函数的定义放入其.cpp文件中?