这篇文章主要介绍“C++怎么直接用代码表达想法”,在日常操作中,相信很多人在C++怎么直接用代码表达想法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++怎么直接用代码表达想法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
创新互联公司2013年开创至今,先为天山等服务建站,天山等地企业,进行企业商务咨询服务。为天山企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
编译器不会读注释(或者设计文档),程序员也不会(一贯地)。通过代码表达的内容被语法定义而且可以(理论上)被编译器和其他工具检查。
class Date {public: Month month() const; // do int month(); // don't // ...};
第一个month的声明明确表达了返回Montrh和不修改Data对象的状态这两件事。第二个声明则需要读者猜想而且留下了更多的发生未知错误的可能性。
This loop is a restricted form of std::find
:
循环只是std::find的限定形式。
void f(vector& 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; } } // ...}
A much clearer expression of intent would be:
意图的最明确表达是下面这个样子:
void f(vector& v){ string val; cin >> val; // ... auto p = find(begin(v), end(v), val); // better,较好 // ...}
经过良好设计的库会比直接使用语言功能的做法更好的表达意图(做什么而不是只是怎么做)
C++程序员应该了解标准库的基本知识并且恰当的运用它。任何程序员都应该了解项目正在使用的基本库并能恰当的使用它。使用这个指南的任何程序员都应该知道规则支持库并且恰当的使用它。
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)的写法有些少见,我们明天文章中说明。
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++怎么直接用代码表达想法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!