日期:2011-03-22 13:55:00 来源:本站整理
<b>C++实用本领讲授</b>[VC/C++编程]
本文“<b>C++实用本领讲授</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在准尺度C++中,有关缺省变量值的限制非常模糊.基于此,很多编译器答应开辟人员将缺省变量值包含在函数声明,指向函数的指针和引用,成员函数的指针,以及typedef声明中.
请看一下以下的程序:
struct A
{
void func(int x=5)
{
}
};
void g(int n=12)
{
}
// 按照C++尺度,不能在以下声明中利用缺省变量值.
void (*pf)(inti=120);
void (A::*pmf)(int j=50);
typedef void (*PF)(inti=100);
// 函数的引用
typedef void (&PRF)(inti=100);
int main()
{
pf=g;
PF pf2=g;
pmf=&A::func;
A a;
//这些调用利用了哪些缺省值?
pf();
pf2();
(a.*pmf)();
}
A::func()和g()具有缺省变量值,这是公道的.但是,指针pmf,pf以及typedefPF也定义了缺省的变量值.按照C++尺度,这是不标准的.
这一代码的实际利用中,此中的一个问题是这些声明中供应的缺省值与A::func()和g()函数供应的值不一致.也就是说,很多编译器将这些代码作为非尺度的扩大.当调用g()函数时,我的编译将120作为pf的缺省值;但是,关于pf2,它利用100作为它的缺省值.
作为一种法则,应当避免利用指向函数的指针,成员函数的指针,以及typedef命名的缺省变量值.即便你的编译器承受了它们,在更高版本中它也大概不被承受.并且,这些代码也会降低程序的机灵性,也会给那些无法辨别哪些编译器接纳何种缺省变量的开辟人员带来误导.在利用这些缺省变量值的合理代码中,这里的倡议是增添一些必要的注释,以阐明需求哪些缺省变量值.
以上是“<b>C++实用本领讲授</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论