论C++标准委员会制定的一条不合理的标准

王朝c/c++·作者佚名  2006-05-24
窄屏简体版  字體: |||超大  

论C++标准委员会制定的一条不合理的标准

C++标准委员会不让for后()中定义的变量在外边用,我觉的非常不合理

在我做的太极语言中是这样设计的,()中的名字注册进入首个含名字空间的母垣(垣的概念大家都知道了吧),中间如果经过了{}则要加序号标记。

for()中定义的变量让不让在外边用曾经是一个争议挺大的问题.在太极语言中是这样考虑的:单独从for本身考虑两方面的意见不好确定,把目光放向全局.就是看()中定义的变量是否要全区域可见.

在太极语言中讲究"做一件事情只要一句话",让紧密关联的代码能写在一句中.

比如下面的一个函数调用.

fc(&(int a));//原型为 void fc(int * p);

k=a;

所以必须让()中定义的变量全区域可见.

在C/C++中你却必须这样写,

int a;

fc(&a);

k=a;

违背了"紧密关联的代码能写在一句中"这个原则.

举具体例子对比一下:

太极语言:

FindFirstFile(pfindstr,&(WIN32_FIND_DATA wfd));

C/C++:

WIN32_FIND_DATA wfd;

FindFirstFile(pfindstr,&wfd);

太极语言:

m_edit1.GetWindowText(CString cstr);

m_edit2.SetWindowText(cstr);

C/C++:

CString cstr;

m_edit1.GetWindowText(cstr);

m_edit2.SetWindowText(cstr);

太极语言:

FindFirstFile(char * pfindstr="*.*",&(WIN32_FIND_DATA wfd));

C/C++:

char * pfindstr="*.*";

WIN32_FIND_DATA wfd;

FindFirstFile(pfindstr,&wfd);

从代码的可读性与直观性与可维护性上太极语言所采用的方式是比C/C++好的.

需要预定义的变量增多时这种表现更明显.必须让()中定义的变量全区域可见!

那么从形式连贯一致性角度考虑,也要让for()中定义的变量全区域可见!

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航