关于inline的注意点

1 view
Skip to first unread message

邱戈川

unread,
Mar 14, 2006, 3:55:30 AM3/14/06
to 基于ACE和SpiderMonkey的SMS虚拟运营系统
抄至C++ Primer
"由于内联函数必须在调用它的每个文本文件中被定义所以没有在类体中定义的内联成
员函数必须被放在类定义出现的头文件中。"

也是说如果定义了
class A
{
public:
inline void Test();
};

那么对于Test()的实现则必须写在同一个.h文件里,且在A的定义下面。


inline void A::Test()
{
//TODO:
}

不过曾经看过不少程序是写在.CPP文件中的。(有时候编译器不会出错,可能是因为函数复杂了,自动被优化掉inline了,如过你用上面这个简单的例子,连接会出错的。)

注意:这种写法inline必须在声明里有,定义可以省略,也可以用。

Reply all
Reply to author
Forward
0 new messages