C++ primer学习笔记
标签(空格分隔): 未分类
《C++标准程序库》、《Effective C++》
《C++ Primer》源代码网站:http://www.informit.com/title/0321714113
- 中文版答案详解,比较好的仓库:https://github.com/jieniyimiao/CppPrimer
- https://github.com/pezy/CppPrimer 原大神的仓库
g++编译C++程序,gcc编译c程序,使用C++11标准,-std=c++11
g++ -std=c++11 main.cpp
函数定义:返回类型、函数名、形参列表、函数体。
先用命令行界面学习C++,会将精力集中于C++语言本身,而不是一些开发工具上。
1.1.1编译、运行程序
- 编辑器:GNU(GNU is not Unix)的编译命令是g++
- 微软Visual Studio编译器
Linux上编译C++程序:g++ -std=c++11 main.cpp
Windows visual studio2015使用命令行:https://www.cnblogs.com/yang666/p/6512550.html
安装文件夹位置:C:\Program Files\community 2015
C:\Program Files\community 2015\VC\bin 文件下有编译和链接时所需要的工具
cl.exe—编译程序
link.exe—链接程序
nmake.exe—用makefile进行构建、编译的程序
先进入cpp文件所在目录,然后用 cl Hello.cpp /EHsc 命令编译.(cl后面字符的是小写L不是数字1)
//失败了!!!
cd G:\C++ Primer\MyCode\chap1_start\chap1_start
cl main.cpp /EHsc
还是尝试使用命令行参数就可以了!
右击所在项目->属性->配置属性->调试->命令参数
1.2 初识输入输出
- iostream库。C++标准库提供IO机制。iostream库包含两个基础类型:istream输入流,ostream输出流。
- 流:随着时间的推移,字符是顺序生成或消耗的。
- 标准输入输出对象
标准库定义了4个IO对象。
标准输入cin—-是istream类型的对象。
标准输出cout—是ostream类型的对象
标准错误cerr—ostream类型的对象,输出警告和错误信息
clog—ostream类型的对象,输出程序运行时的一般性信息。 向流写入数据
<<
是输出运算符,在标准输出上打印消息,<<
需要两个运算对象,左侧必须是一个ostream对象,右侧是要打印的值。将给定的值写入给定的ostream对象中。std::cout << “Hello Wolrd!” << std::endl;
使用两次<<
,因为此运算符返回其左侧的运算对象
"hello world"
字符串字面值常量
endl
操纵符——作用:结束当前行,并将于设备关联的缓冲区(buffer)中的内容刷到设备中。
缓冲刷新操作保证所有输出流都真正写入输出流中,而不是留在内存中等待写入流。
- 命名空间:避免名字定义冲突。标准库定义的所有名字都在命名空间std中。
使用命名空间的副作用:使用作用域运算符来指定我们想使用的是哪一个名字。 - 输入运算符
>>
,左侧为istream类型的对象,从给定的istream读入数据,并存入给定对象中。 - 输出为不同类型的值:
std::cout<<v1<<"+"<<v2<<"="<<v1+v2<<endl;
既有字符串又有整型。
因为标准库定义了不同版本的输入输出运算符,来处理这些不同类型的运算对象。
1.4控制流-while,for,if
- for与while的优缺点:for的循环变量的初始化和修改都在语句头,形式简洁,适合循环次数已知,while适合循环次数未知,用某一条件控制循环,循环变量初始化在while之间,修改在while语句中。
- 读取数量不定的输入数据
while(std::cin >> value) sum += value;
当我们使用一个istream对象作为条件时,其效果是检测流的状态。若流式有效的,检测成功;当遇到文件结束符,或遇到一个无效输入,istream的对象无效。
键盘敲入文件结束符:windows系统—-Ctrl+Z, 然后按enter/return。 Unix:Ctrl+D
1.5 类简介
类–定义一个自己的数据结构
- 文件重定向:允许我们将标准输入和标准输出与命名文件关联起来
习题1.20
环境:VS2015,命令行参数
点运算符–只能用于类类型的对象,只能是类的对象才能使用。用来调用成员函数。
剩下的习题都可以在大神的仓库中找到。