开始挖坑C++,在此更新C++ Primer的读书笔记,欢迎大家阅读指正,感谢!
第一章:开始
一个简单的C++程序
int main()
{
return 0;
}
一个C++程序必须含有一个main函数。
一个函数包含四个部分:返回类型、函数名、形参列表、函数体。
在main函数中,有一个返回值return 0
,其返回0时,表示成功;非0的含义由系统定义(例如:-1表示失败)
IO操作
- C++中未定义任何IO语句,因此其依靠标准库来提供IO机制。
- iostream库中包含有输入流(cin标准输入)和输出流(cout标准输出;cerr标准错误;clog输出程序运行时的一般性信息)。
- 流的定义是:随着时间的推移,字符是顺序生成与消耗的。
<<
为输出运算符,>>
为输入运算符,其用法见下表(他们也有其他用法,见后文)
<< 输出运算符 | >> 输入运算符 | |
---|---|---|
接受两个运算对象 | 接受两个运算对象 | |
左侧 | ostream对象 | istream对象 |
右侧 | 要打印的值 | 一个对象 |
作用 | 将右值写入左侧对象中 | 从istream中读入数据存入右侧对象 |
返回 | 左侧运算对象 | 左侧运算对象 |
例子 | std::cout<<"hello world"<<std::endl; | std::cin>>val1>>val2; |
补充:例子中的endl的作用为:结束当前行,并将缓冲区中的内容刷到设备中,这样可以保证目前所产生的输出都写入到了输出流中,而不是在内存中等待写入流。
控制流
- for循环, while循环, if判断
- 读取数量不定的输入数据
#include <iostream>
int main()
{
int sum = 0, val = 0;
while(std::cin>>val)
sum+=val;
std::cout<<"Sum is" << sum << std::endl;
return 0;
}
在while的判断中,()内为真则进行sum+=val
。std::cin>>val
返回的为cin的对象,如果输入值有效,则为真;如果输入值无效(输入不为int类型)或遇到文件结束符,则为假。
在C++中,一个对象如果不为空则在if判断时其为真,否则为假,故if(obj)
等价于if(obj!=null)
。
类
类(class)是一种自定义的数据结构,每个类(class)都是一个新的类型(type),类型名为类名。
点(.
)操作符只用于类的对象,其左侧为类的对象,右侧为类的成员名,返回结果为右侧制定的类型,如果是指针则要使用(->
)操作符。
::
操作符为作用域运算符,std::cin
表示的是std命名空间中的cin对象。