【个人学习_Primer c++】总结及代码对照分析

个人学习部分,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(地址)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值