温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C++怎么直接用代码表达想法

发布时间:2021-11-26 13:51:38 来源:亿速云 阅读:107 作者:iii 栏目:大数据

这篇文章主要介绍“C++怎么直接用代码表达想法”,在日常操作中,相信很多人在C++怎么直接用代码表达想法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++怎么直接用代码表达想法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

P.1: Express ideas directly in code(直接用代码表达想法)

Reason(原因)

编译器不会读注释(或者设计文档),程序员也不会(一贯地)。通过代码表达的内容被语法定义而且可以(理论上)被编译器和其他工具检查。

Example
class Date {public:    Month month() const;  // do    int month();          // don't    // ...};

第一个month的声明明确表达了返回Montrh和不修改Data对象的状态这两件事。第二个声明则需要读者猜想而且留下了更多的发生未知错误的可能性。

Example, bad(反例)

This loop is a restricted form of std::find:

循环只是std::find的限定形式。

void f(vector<string>& v){    string val;    cin >> val;    // ...    int index = -1;                    // bad, plus should use gsl::index                                       // 不好, 外加应该使用gsl::index    for (int i = 0; i < v.size(); ++i) {        if (v[i] == val) {            index = i;            break;        }    }    // ...}
Example, good(正确示例)

A much clearer expression of intent would be:

意图的最明确表达是下面这个样子:

void f(vector<string>& v){    string val;    cin >> val;    // ...    auto p = find(begin(v), end(v), val);  // better,较好    // ...}

经过良好设计的库会比直接使用语言功能的做法更好的表达意图(做什么而不是只是怎么做)

C++程序员应该了解标准库的基本知识并且恰当的运用它。任何程序员都应该了解项目正在使用的基本库并能恰当的使用它。使用这个指南的任何程序员都应该知道规则支持库并且恰当的使用它。

Example(示例)
change_speed(double s);   // bad: what does s signify?                          //不好:s的含义是什么? // ...change_speed(2.3)

比较好的做法是明确double的含义(是新速度还是相对于就速度的变化?)和单位。

change_speed(Speed s);    // better: the meaning of s is specified                          // 较好:定义了s的含义// ...change_speed(2.3);        // error: no unit 错误:没有单位change_speed(23m / 10s);  // meters per second 米每秒

我们可以接受一个无修饰的double值作为变化量,但是这容易引发错误。如果即想要绝对速度,又想要速度的变化量,我们需要定义一个Delta类型。

译者注:change_speed(23m/10s)的写法有些少见,我们明天文章中说明。

Enforcement(实施建议)

Very hard in general. 总的来说很难实施。

  • use const consistently (check if member functions modify their object; check if functions modify arguments passed by pointer or reference)

    坚持使用const(检查成员函数是否修改对象;检查函数是否修改通过指针或引用传递的参数)

  • flag uses of casts (casts neuter the type system)

    重视类型转换的用法(类型转换会使类型系统无法发挥作用)

  • detect code that mimics the standard library (hard)

    发现模仿标准库的代码(困难)

到此,关于“C++怎么直接用代码表达想法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++
AI