• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Bjarne Stroustrup的FAQ:C++的风格与技巧

发布: 2008-4-23 15:44 | 作者: 不详 | 来源: www.wushuang.net | 查看: 121次 | 进入软件测试论坛讨论

领测软件测试网



把*放到名字这一边,看来也不能有效地减少这种错误:

int *p, p1; // 也许是错的?

为每一个名字写一条声明最大程度地解决了问题——特别是当我们初始化变量的时候。人们几乎不会这样写:

int* p = &i;
int p1 = p; // 错误:int用一个int*初始化了

如果他们真的这么干了,编译器也会指出。

每当事情可以有两种方法完成,有人就会迷惑。每当事情仅仅是一个风格的问题,争论就会没完没了。为每一个指针写一条声明,而且永远都要初始化变量,这样,混乱之源就消失了。更多的关于C的声明语法的讨论,参见《C++语言的设计和演变》。

对于我的代码,哪一种布局风格(layout style)是最好的?

这种风格问题属于个人的爱好。人们往往对布局风格的问题持有强烈的意见,不过,也许一贯性比某种特定的风格更加重要。象大多数人一样,我花了很长的时间,来为我的偏好作出一个固定的结论。

我个人使用通常称为“K&R”的风格。当使用C语言没有的构造函数时,需要增加新的习惯,这样就变成了一种有时被称为“Stroustrup”的风格。例如:

class C : public B {
public:
// ...
};

void f(int* p, int max)
{
if (p) {
// ...
}

for (int i = 0; i<max; ++i) {
// ...
}
}

比大多数布局风格更好,这种风格保留了垂直的空格,我喜欢尽可能地在合理的情况下对齐屏幕。对函数开头的大括弧的放置,有助于我第一眼就分别出类的定义和函数的定义。

缩进是非常重要的。

设计问题,诸如作为主要接口的抽象基类的使用,使用模板以表现有弹性的类型安全的抽象,以及正确地使用异常以表现错误,比布局风格的选择要重要得多。

我应该将“const”放在类型之前还是之后?

我把它放在前面,但那仅仅是个人爱好问题。“const T”和“T const”总是都被允许的,而且是等效的。例如:

const int a = 1; // ok
int const b = 2; // also ok

我猜想第一种版本可能会让少数(更加固守语法规范)的程序员感到迷惑。

为什么?当我发明“const”(最初的名称叫做“readonly”,并且有一个对应的“writeonly”)的时候,我就允许它出现在类型之前或之后,因为这样做不会带来任何不明确。标准之前的C和C++规定了很少的(如果有的话)特定的顺序规范。

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网