C++重载与内联方法

重载三种情况

1.参数个数不同

2.参数类型不同

3.有无const

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。

2.将函数实现代码直接放入成员函数声明的地方。

注意:

1.内联比#define宏更加安全,因为#define有时候可能会出现意想不到的情况。如:

#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++编译器也会予以忽略,而且大的内联方法很容易造成代码膨胀。

转载于:https://my.oschina.net/u/2959583/blog/775647

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值