记得大二的时候就看过C++Primer,但是当时由于目标不明确想法太多,没能一直看完,加上现在很多时候觉得自己基础实在不扎实,所以说好好地从头学习一下应该是有必要的,这个过程中也尝试写一点记录。
C++Primer的第一章是快速入门,主要就随便介绍了一下C++的基本的东西
1.初窥输入输出
C++并没有直接定义进行输入输出的任何语句,这种功能由标准库提供(iostream库)。定义了四个IO对象:cin、cout、cerr、clog
- #include<iostream>
- using namespace std;
- int main()
- {
- int var1, var2, sum;
- cout << "input var1 and var2" << endl;
- cin >> var1 >> var2;
- sum = var1+var2;
- cout << "the sum is:" << sum << endl;
- return 0;
- }
注意这里输出操作返回的是输出流本身
endl是一个特殊值,叫做操纵符(manipulator),把它写入输出流就会具有输出换行的作用,并刷新与设备关联的buffer
读入未知数目的输入:
- #include<iostream>
- using namespace std;
- int main()
- {
- int var, sum;
- while (cin >> var)
- sum += var;
- cout << sum << endl;
- return 0;
- }
这里我们可以看出,每次输入一个空格,cin就读取下一个值,输入完后enter,cin结束。但是如果你要求cin两个值,现在输入一个之后enter,将会继续读取下一个值
如果你在输入的过程中输入了更多的值以至于当前的cin没有全部读到变量中,但是仍然读入到输入流,你在下次cin的时候就会获取上次没有赋给变量的那个值
2.类的简介
C++通过定义类来定义自己的数据结构
Sales_item item说明item是类型Sales_item的一个对象(对象是指内存中具有类型的区域)
3.变量和基本类型
初始化的两种类型:复制初始化和直接初始化
- int var(1024); //direct-initialization
- int var = 1024; //copy-initialization
变量初始化规则:
1.内置类型变量的初始化
在函数体外定义的变量初始化成0
在函数体内定义的变量不初始化
2.类类型变量的初始化
每个类都通过构造函数定义了该类型的对象如何进行初始化,但是如果我们定义某个类的变量时没有提供初始化式,这个类也可以定义初始化时的操作。通过默认构造函数来实现。
声明和定义
变量的声名用于向程序表明变量的类型和名字
变量的定义用于为变量分配存储空间,也可以同时指定初始值
extern声名不是定义,不分配存储空间
引用
- int ival = 1024;
- int &refval = ival;
const引用是指向const对象的引用
- const int ival = 1024;
- const int &refval = ival;
- int &refval2 = ival; //error
这样的话可以读取refval但是不能修改refval
注解:非const引用只能绑定到与该引用同类型的对象,const引用则可以绑定到不同但相关的类型的对象或绑定到右值
C++支持struct关键字,如果使用class定义类,定义在第一个访问标号前的任何成员都隐式指定为private,struct则都是public。
转载于:https://blog.51cto.com/felixzhu/731042