个人学习部分,Primer c++第五版中文版。
第五版的官网,可以找到原代码下载:
https://www.informit.com/store/c-plus-plus-primer-9780321714114
第一章.开始
自己写的:
#include <iostream>
#include "Sales_item.h"
int main():
{ Sales_item total;
if (std::cin >>total>>std:endl):
Sales_item trans;
while(std::cin>>trans>>std::endl){
//TODO
if(total.isbn()==trans.isbn()){
//TODO
total+=trans;
}else:
{
std::cout<<total<<std::endl;
total=trans;
}
}
}
对比发现的错误:
1.main()后面不用冒号:
2.cin的 输入语句后不需要endl来换行
3.总的if结构外,考虑了有输入语句的情况,但是没有考虑没有输入语句的情况。
4.总的if结构多了冒号,少了一对{},是其他语言的习惯。。
5.int类型的main函数,当运行成功时要返回值,一般返回0
6.进行报错时使用对象cerr
第二章.类型
建议选择的类型:
使用int执行整数运算;使用char时明确是否有符号,选用unsigned char 或者signed char;浮点数运算用double。
----------------------------------------------------------------换了一个方式,在看视频
数组地址传递中的指针:
由于数组本身是地址,所以在进行地址传递时与int方法的使用不太一样:
//普通的int类
int a=1;
void test(int * p){
cout<< *p<<endl;
}
test(&a);
//数组类.其中的arr本身就是地址,所以不用*解引用。指针p本身也是地址
int arr[10];
void test(int * p){
cout<< p[0]<<endl;
}
test(arr);
随机数的使用:
#include<ctime>
int rand= rand()%61+40; //意思是任意取的值对61取模再+40,那么前面的值范围为0-60,整体范围为40-100
//随机种子
srand ((unsigned int ) time(NULL));
第三章.对象
如果此处用的是Person,那么它会调用拷贝构造函数,返回一个P’。使用Person &,即引用的方式才能返回对象P(地址)。