重载三种状况安全
1.参数个数不一样函数
2.参数类型不一样code
3.有无constget
class test { public: int getNum(int i); double getNum(double d);//若是不想使用该重载函数,则能够显示删除double类型的重载函数 bool getNum(double x, double y);//变量类型和变量个数均不相同 int getNum(int i)const;//const方法重载 inline double setNum(double x);//内联函数 int setNum(int x){mx=x;}//另外一种内联函数的实现方式,即直接将代码放在类的定义中去。 private: int mx; };
内联方法编译器
1.方法实现的最前面加上关键字inline。io
2.将函数实现代码直接放入成员函数声明的地方。编译
注意:class
1.内联比#define宏更加安全,由于#define有时候可能会出现意想不到的状况。如:test
#include <stdio.h> #include <stdlib.h> #define T(a,b) a+b void main() { int x = 2, y = 3, z = 4; printf("%d", T(x, y)*z);//运行结果为14,那是由于执行的是x+y*z,并非(x+y)*z getchar(); }
2.知足内联函数的条件是代码足够简单,即使用户没有显示声明较小的函数为inline,但高级C++编译器会自动把该函数当成内联函数来处理,若函数代码庞大,即使用户显示声明该函数为inline,C++编译器也会予以忽略,并且大的内联方法很容易形成代码膨胀。变量