正确放置inline函数

个人感觉用c++写出的程序再小也小不到哪里去,不愧是开发大型项目的好手,呵呵。所以用c++写出的程序一定要有个好的布局,也就是合理的头文件源文件设置(这是高手说的,哈哈)。前几天,自己在折腾c++的时候遇到了一个及其郁闷的事情——程序写好了,编译也通过了,可就是链接的时候总报找不到那个函数。整整折腾了我一下午,也无果啊。。。我的程序结构如下:

test.h <------头文件

class     test 

{

public:

         void mytest(void);

};

test.cpp <-----源文件

inline void test::mytest(void)

{

         cout << "i am testing" << endl;

}

另外就是有个main.cpp文件了,这里就不说它了。就这么个布局折腾了我一下午,由于使用的是linux,所以一开始就是用g++在编译链接。自己发现解决不了问题了,就用vc来测试下程序,发现还是报同样的错误(我终于找到了gcc和vc的相同点了,哈哈)。在我一气之下就把test.cpp文件的inline关键字给删除了,再调试的时候,一切的一切都解决了。由此,我就可以肯定程序的结构基本是没有大的问题的了,问题应该就出现在inline函数上。于是我又尝试把inline函数移到头文件中,问题就这样莫名其妙的解决了。问题是解决了,可我心中的疑虑还是没解决,于是查看《c++ primer》好好理解了下inline函数————内联函数应该是在编译阶段在函数的调用处直接展开,从而降低了函数调用的开销,换得了一定的效率。所以当把内联函数放到另外一个源文件后,调用这个内联函数的源文件最多只是知道函数的声明,而不知道具体的定义,所以无法展开,于是就抛出了“找不到此函数的错误”。

ps:inline函数应该放置在头文件中,和对应的类一起。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值