关于inline函数的调用
情况1
//A.h
class A
{
public:
void Foo(int x, int y);
}
//A.cpp
inline void A::Foo(int x, int y)
{
…
}
//B.cpp
void B::Fun()
{
A a;
a.Foo(0,0);//这里编译不过去
}
//////////////////////////////////////////////////////////////
情况2
如下可以正确编译,也就是说把Foo函数的定义放到了A.h中
//A.h
class A
{
public:
void Foo(int x, int y);
}
inline void A::Foo(int x, int y)
{
…
}
//B.cpp
void B::Fun()
{
A a;
a.Foo(0,0);//这里编译不过去
}
如下是我的理解:当把某一函数声明为inline的话,在调用处必须可以找到函数的实现,这样感觉结构很不好,能否像一般函数那样,把inline函数也分成.h和.cpp文件呢?
如上,不知道说清楚了吗,哪里不请指出