我知道根据定义,内联成员函数应该放在头中。但是,如果无法将函数的实现放入头文件中,该怎么办?让我们来看看这种情况:
文件A.h
#pragma once
#include "B.h"
class A{
B b;
};
文件B.h
#pragma once
class A; //forward declaration
class B{
inline A getA();
};
由于循环包含,我必须将getA
的实现放在
B.cpp
#include "B.h"
#include "A.h"
inline A B::getA(){
return A();
}
编译器会内联getA
吗?如果是,那么哪个内联关键字是有意义的(头中的关键字还是.cpp文件中的关键字)?有没有其他方法可以将内联成员函数的定义放到它的.cpp文件中?
https://stackoverflow.com/questions/3992980
复制相似问题