所以在C++中应该使用inline内连函数替代宏调用,这样既可达到宏调用的目的,又避免了宏调用的弊端。
使用内连函数只需把inline关键字放在函数返回类型的前面。例如:
inline int Add(int a,int b);//声明Add()为内连函数
这样编译器在遇到Add()函数时,就不再进行函数调用,而是直接嵌入函数代码以加快程序的执行。
三、使用函数重载
在C语言中,两个函数的名称不能相同,否则会导致编译错误。而在C++中,函数名相同而参数不同的两个函数被解释为重载。例如:
void PutHz(char *str); //在当前位置输出汉字
void PutHz(int x,int y,char *str); //在x,y处输出汉字
使用函数重载可以帮助程序员处理更多的复杂问题,避免了使用诸如intabs()、fabs()、dabs()等繁杂的函数名称;同时在大型程序中,使函数名易于管理和使用,而不必绞尽脑汁地去处理函数名。
四、使用引用(reference)代替指针进行参数传递
在C语言中,如果一个函数需要修改用作参数的变量值的时候 ,参数应该声明为指针类型。例如:
void Add(int *a) {(*a)++;}
但是对于复杂的程序,使用指针容易出错,程序也难以读懂。在C++中,对于上述情况 可以使用引用来代替指针,使程序更加清晰易懂。引用就是对变量取的一个别名,对引用进行操作,这就相当于对原有变量进行操作。例如使用引用的函数定义为:
void Add(int a) (a++;); //a为一个整数的引用
这个函数与使用指针的上一个函数的功能是一样的,然而代码却更为简洁和清晰易懂。
五、使用缺省参数
在C++中函数可以使用缺省参数,例如:
void PutHzxy(char *str,int x=-1,int y=-1)
{ if (x==-1) x=wherex();
if (y==-1) y=wherey();
moveto(x,y);
PutHz(str);}
可以有两种方式调用函数PutHzxy(),例如:
PutHzxy("C++语言");//使用缺省参数,在当前位置输出
PutHzxy("C++语言",10,10);//没有使用缺省参数
通常的情况下,一个函数应该具有尽可能大的灵活性。使用缺省参数为程序员处理更大的复杂性和灵活性问题提供了有效的方法,所以在C++的代码中都大量地使用了缺省参数。
需要说明的是,所有的缺省参数必须出现在不缺省参数的右边。亦即,一旦开始定义缺省参数,就不可再说明非缺省的参数。
例如:
void PutHzxy(char *str,int x=-1,int y=-1); //正确
void PutHzxy(int x=-1,int y=-1,char *str);//错误
六、使用模板和BIDS
从Borland C++ 3.1中还引入模板(template)的功能,通过模板Borland C++实现了功能强大的BIDS(Borland International Data Structures)。使用BIDS可以不编程实现存储任何数据类型的数组、链表、堆栈、队列等数据结构。
下面的例子实现了一个存储整型变量的堆栈:
typedef BI_StackAsVector intstack;
main()
{instack is; //定义一个整型变量的堆栈
for(int I=0,I<10,I++)
is.push(I);//10个数压栈
for(I=0,I<10,I++)
cout<
}
通过语句is.push(),is.pop()可以对堆栈进行操作。
制作安装与反安装程序
近日,笔者需要把一些平时经常使用和自己编的一些程序“压”在一张软盘上。于是,便安好了WinRAR,准备使用RAR的“自解压”功能。可又想起了“人见人爱”的Setup向导。经过研究,笔者发现了一种不用语言(编程)的方法就可轻松实现安装与反安装程序的制作。想让你的软件更专业吗?Let's go!
软件名称:Tarma Installer
最新版本:2.40.1130X汉化版
下载地址:http://software.yalaso.net/softview.asp?softid=173
安装很简单,一路按“下一步”即可。顺便欣赏一下吧。安装完成后,可从桌面或程序组进入主界面。哇!多漂亮的界面呀!单击“制建新方案”,便开始了制作“旅程”。在“新方案”界面上,左边为项目分类,右边为制作区,下面则是信息栏。在右上方,有3个按扭,它们分别为“上一步”、“下一步”和“帮助”。
第一步:在“方案确认”中,输入程序标题、公司名及版本号。然后,在项目分类栏中单击“文件”,根据自己的需要分别在<AppFolder>(任意文件夹)、<Common File>、<Windir>和<WinSysDir>中添加文件。如需要,还可以自行添加文件夹。在“快捷方式”中,还可添加需要的快捷方式。
提示:此快捷方式的图标必须在“文件”一栏中添加好。
第二步:单击“下一步”,进入安装参数设置位置,在这里可以设置安装位置、选项和错误处理方法。接下来,在“自述文件和许”可当中可键入在复制文件前提示给用户的信息。在语言项目中,如需多语言支持,可在上方表内提供的语言种类前打钩(前提是先在下方选中“多语言支持”[U])。在需要项目中可以选择软件对系统和硬件的要求。
第三步:在高级选项中,可设置用户注册页面信息和注册表、INI文件及环境等高级要求。
第四步:在建立选项中,设置好建立的风格(推荐使用单个EXE),最好将“警告视为错误”前的钩去掉,否则经常会建立失败。
最后,便可以点击“建立”(Ctrl+F5)完成这个程序的建立了。建立后,程序会自动生成反安装。
VC++中色彩的运用
如华丽得体的衣装可以让一个外貌平平的女孩变得自信而愉快那样,在VC++程序界面中适当地配上颜色也会使你的程序变得生动悦目。
一、寻找VC++中调色板的配色参数
最直接的方法是设置应用程序主窗体的背景色。对此,简单的办法是通过ClassWizard在视图中创建一个成员函数来响应消息WM_ERASEBKGND,关键源代码如下:
BOOL CMyView::OnErase Bkgnd(CDC* pDC)
{
CBrush backBrush(RGB(255,255,0));
CBrush* pOldBrush=pDC->SelectObject(&backBrush);
CRect rect;
pDC->GetClipBox(&rect);
pDC->PatBlt(rect.left,rect.top,rect.Width(),rect.Height(),PATCOPY);
pDC->SelectObject(pOld Brush);
return TRUE;
}
本段代码的作用是将主窗体背景绘制成米黄色,其中所用的RGB宏是用于指定三原色(红,绿,蓝)的“配比数”