发表在 程序里的星辰与大海 08-26 10:06:28
本文有自己想到的也有书中或者网上看到的,只是为了记录,不做商业用途,所以就不一一标明出处,若有侵犯请私信。
1.使用类型时的注释
1.在声明类型的时候,注释中要说明这个类型按顺序存储了什么数据,否则重看代码时会忘记类型中都存了什么类型的数据。
2.删去多余变量
1.当有a、b变量始终满足:a和b变量互换不影响程序结果时,可以把a、b合并为一个变量。
例子:
#include
#include "Sales_item.h"
int main()
{
//*Sales_item book1,book2 ,sumbook;//book1记录上一条销售记录;book2用于记录正在录入的销售记录;sumbook用于记录总销售额
Sales_item book1, book2;//Sales_item按顺序存储ISBN号、售出数、销售单价。输出按顺序是ISBN号、售出数、总销售额,平均价格
if (std::cin >> book1)//保证输入的数据至少有两条
{
//*sumbook = book1;//初始化总销售额
while (std::cin >> book2)
{
if (book1.isbn() == book2.isbn())//如果两条记录的ISBN号一致
{
book1 += book2;//1.更新总销售额
//2.这里不能直接输出结果---否则当最后一个数据是输入数据中唯一一个不同的时候,就会输出两次
//3.如果用//*号里的三变量程序,这里应该变成sumbook += book2(没必要写成sumbook = sumbook + book2了,这里和P20-1.5.1情况不一样)
}
else//如果两条记录的ISBN号不一致
{
std::cout << " " << book1 << std::endl;//输出新的总销售额(当前的总销售额在下面输出,这里是输出新的)
book1 = book2;//重置总销售额
//*book1 = book2;//重置判断ISBN号是否一致的记录
}
}
std::cout << " " << book1 << std::endl;//1.输出总销售额
//2.如果用三变量的程序,这样改book1为sumbook
}
else//没有输入正确的数据就输出警告
{
std::cerr << "no data" << std::endl;
system("pause");
return -1;//要记住,没在循环体内加返回值,循环结束后程序不一定结束;只有加了,才能实现循环结束后程序马上结束的功能
}
3.名字与定义问题
1.名字要简洁地说明内容
2.标识符要突出该变量的作用;变量名一般用小写字母;用户自定义的类名一般以大写字母开头;标识符若由多个单词组成,写成a_b或者AndBand形式加以区分(最好别连续两个下划线或者下划线后大写字母开头,因为标准库中预留的一些名称很可能会与之冲突,出现未定义行为)。【标识符=变量名、函数名、etc】
3.第一次使用变量时再定义它。
4.指针
1.必须清楚任意给定的指针是否是有效的。
2.尽量等定义了对象之后再定义指向它的指针,实在不知道时,将其初始化为nullptr。
加油