作为一个日常划水的进阶佛系青年,高考结束后我就持续躺平,直到大学毕业后开始找工作。有人说“毕业即失业”,这句话放在我身上特别合适。大学四年一眨眼就过去了,回想一下大学四年都干了什么,学了什么,我的脑子一片空白。
为了找个地方继续混吃等死,我把大学忘得差不多的C语言捡起来重新学了几天,然后带着一腔孤勇投了简历,幸运的是成功的,然后我又开始躺平了。
事实表明对于大学刚刚毕业的萌新,大多数公司还是比较友好的,对个人能力要求不高,开始只需要跟着师傅一步步学习就行了。但再怎么放低要求最基础的知识还是需要的,所以我又拿出了我的C语言,从头开始学,事实证明,每个人都很聪明,大家都能自学成才。
不得不说学习真是一件枯燥无味,但却不得不持之以恒的事情,学完了C语言我开始向C++迈步,或许是因为之前学了C语言,开始学习C++时,不太吃力,以下是我个人学习C++的一些见解,请大家指正。
1、C++的main函数
C++的main函数与C语言的main函数一致,之前怎么用现在还是怎么用。
2、C++输入输出
C++的输入输出与C语言有很大的不同,C++有一个iostream库,不需要用 scanf 和 printf 来表示输入输出,取而代之的是 cin 和 cout 。
我们分别用C和C++输出Hello World!比较一下同异之处。
用C输出Hello World!
#include <stdio.h>
int main()
{
printf("Hello World!");
return 0;
}
用C++输出Hello World!
#include <iostream>
int main()
{
std::cout << "Hello World!" << std::endl;
return 0;
}
我们先看一下相异之处,首先C用的是头文件stdio.h,C++用的是iostream库,为Hello World!的输出准备;其次C用printf函数输出,C++用的是cout(标准输出)和<<(输出运算符),前缀std::指出名字cout和endl是定义在名为std的空间;最后,C有各种格式化打印,如%d、%f、%c等,但C++不需要,这个后面再详细说一下 。
至于相同之处就比较多了,比如都是main函数,用;(分号)表示结束,表示注释的方法一致,while、for、if语句使用方法一样……
源码下载地址 informit.com/title/0321714113
3、Sales_item类
首先我们要知道什么是类?一个类定义了一个类型,以及与其关联的一组操作。每个类实际上都定义了一个新的类型,其类型名就是类名。可能这些描述有些抽象不太容易理解,目前我们只需要知道类和结构体差不多就行了。
接下来我们看例子
读取一组书籍销售记录,将每条记录打印到标准输出上
#include <iostream>
#include "Sales_item.h"
int main()
{
Sales_item book;
std::cout << "请输入销售记录:" << std::endl;
while(std::cin >> book)
std::cout << " ISBI、销售额和平均售价为 " << book << std::endl;
return 0;
}
编写程序,读取两个ISBN相同的Sales_item对象,输出他们的和
#include <iostream>
#include "Sales_item.h"
int main(void)
{
Sales_item item1, item2;
std::cin >> item1 >> item2;
if (item1.isbn() == item2.isbn())
{
std::cout << item1 + item2 << std::endl;
return 0;
}
else
{
std::cerr << "Data must refer to same ISBN" << std::endl;
return -1;
}
}
读取多条销售信息
#include <iostream>
#include "Sales_item.h"
int main()
{
Sales_item total;
if (std::cin >> total)
{
Sales_item trans;
while (std::cin >> trans)
{
if (total.isbn() == trans.isbn())
total += trans;
else
{
std::cout << total << std::endl;
total = trans;
}
}
std::cout << total << std::endl;
}
else
{
std::cerr << "No data!" << std::endl;
return -1;
}
return 0;
}