宝杉的博客

UNIX/LINUX;ACE;SNMP;C++
posts - 33, comments - 23, trackbacks - 0, articles - 0

08-10 内联函数

Posted on 2007-08-13 10:24 宝杉 阅读(196) 评论(0)  编辑 收藏 引用 所属分类: C++

内联函数:既增加安全性,又可以调用类的数据成员。

C++中,用内联取代所有宏,但在Debug版本中,assert是例外。

assert不产生任何副作用,调用函数会引起内存、代码的变动,所以assert是宏。

内联格式:

     void Foo(int x, int y);    

     inline void Foo(int x, int y)    // inline与函数定义体放在一起

     {

        

     }

用于实现的关键字,而非用于声明的关键字。

在类中的规范格式:

class A

     {

public:

         void Foo(int x, int y)

     }

     // 定义文件

     inline void A::Foo(int x, int y)

{

}

什么情况不适合使用内联?

1 内联函数代码较长,导致内存消耗较高。

2 内联函数包括循环,执行内联函数代码比调用函数的开销大。

F:为什么构造和解析函数不使用内联?

Q:因为析构函数可能“隐藏”一些行为,例如执行基类或成员对象的析构过程。

有时候编译器会自动取消一些不值得的内联,所以在声明时不写inline是合理的。


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理