概述
将类的析构函数定义为内联函数,可能导致潜在的代码膨胀。
假设CUser类的析构函数为内联函数
代码膨胀:
#include "stdafx.h"
#include "iostream.h"
int main(int argc, char* argv[])
{
int nLevel = 0; //定义一个整型变量
switch(nLevel)
{
case 0: //分支判断
{
cout << "系统用户" << endl; //输出信息
return 0; //函数结束
}
case 1: //分支判断
{
cout << "普通用户" << endl; //输出信息
return 0; //函数结束
}
default: //默认情况
return 0; //函数结束
}
return 0;
}
由于CUser类的析构函数是内联成员函数,因此上述代码在每一个return语句之前,析构函数均会被展开。因为return语句表示当前函数调用结束,User对象的生命周期也就结束了,自然调用其析构函数。
根据上述分析,main函数中switch语句的编写是非常不明智的,下面对其进行修改,将return语句替换为break语句。
改进switch语句提高代码质量:
#include "stdafx.h"
#include "iostream.h"
int main(int argc, char* argv[])
{
int nLevel = 0; //定义一个整型变量
switch(nLevel)
{
case 0: //分支判断
{
cout << "系统用户" << endl; //输出信息
break; //switch语句结束
}
case 1: //分支判断
{
cout << "普通用户" << endl; //输出信息
break; //switch语句结束
}
default: //默认情况
break; //switch语句结束
}
return 0;
}
在switch语句中通过将return语句替换为break语句,避免了不必要的代码扩展,精简了可执行文件代码。
最后
以上就是时尚短靴为你收集整理的inline函数:避免代码膨胀的全部内容,希望文章能够帮你解决inline函数:避免代码膨胀所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复