一,内置成员函数
类的成员函数也可以指定为内置函数。
如果在类体中定义的成员函数中不包括循环等控制结构,c++系统自动地对他们作为内置函数来处理。也是建议性地,而不是命令性的。
c++要求对一般的内置函数要用关键字inline声明,但对类内定义的成员函数。可以省略,因为这些成员函数已被隐含地指定为内置函数。
如果成员函数不在类体内定义,而在类体外定义,系统并不把它默认为内置函数,调用这些成员函数的过程和调用一般函数的过程是相同的。如果想让他是内置函数,应当用inline做显示声明。
如果在类体外定义inline函数,则必须讲类定义和成员函数定义都放在同一个头文件里面(或写在同一个源程序文件中)否则编译时无法进行置换(将函数代码得拷贝嵌入到函数调用点中)
内置函数与内置成员函数是十分相似的。
如果有的函数需要频繁使用,则所用时间会很长,从而降低程序的执行效率。有些实用程序对效率是有要求的,要求系统的响应时间短。
所以,c++提供了一种提高效率的方法,即在编译时将所调用的函数代码直接嵌入到主调函数中,而不是将流程转出去。
方法很简单,就是在函数首行的左端加上inline。
二,指向对象成员函数的指针
定义指向对象成员函数的指针变量的方法和定义指向普通函数的指针变量方法有所不同。
void (*p)(); p=func; (*p)();//函数调用
void(类名::*p)();
指向对象成员函数的指针要加上类名,加上域名。
p=&类名::成员函数名;
就是要加上域名,这是最不同的一点。