C++ Primer

再次重温下C++ Primer

第一章、开始

1、GNU编译器使用g++

$ g++ -o prog1 prog1.cc

2、

while(std::cin >> value)
  • 使用一个istream作为条件时,如果遇到Eof,或无效输入(不匹配类型)则判断为假,跳出

第二章:变量和基本类型

一、基本内置类型

1、如何选择类型

  • 明确知道不可能为负,定义为unsigned型
  • 整数运算使用int型
  • 浮点运算使用double型
  • 如果需要一个不大的整数,要明确是signed char 或者unsigned char

2、含有无符号类型的表达式,在与有符号int相加时会默认转换为无符号型运算

  • 所以这里要注意不要使用这种无符号类型表达式作为判断,可能会进入无限循环
  • 切勿混用符号型和无符号型

二、变量

1、初始化 != 赋值

int a = 1;           //初始化

int b;   
b = 2;            //赋值
  • 建议初始化每一个内置类型的变量

2、变量的声明和定义

int i;        //声明并定义;默认初始化为0
    
extern int j;     //声明未定义
  • 函数体内部,初始化一个extern关键字的变量,将引发重复定义的错误(即使全局没有定义该变量)
  • main函数也是函数,所以main函数中也不能初始化一个extern关键字的变量

3、变量名的规范

  • 变量名一般用小写字母
  • 自定义的类名一般大写字母开头
  • 如果标识符由多个单词组成,使用驼峰法
  • 函数和方法用动词开头,首字母大写匈牙利法

4、变量的定义,C++里在被用到的地方前定义就可以,C中必须在函数开头就定义好

5、符合类型(int *, int &):指针和引用

  • 引用就是是绑定另一个变量,可以简单理解为变量的另一个名字,真实可能是 *const的指针
  • 引用本身不是一个对象,所以不能定义引用的引用(int &&i不行)
  • 引用的类型必须与要绑定的对象严格匹配
  • 引用不是对象, 没有实际地址,不能定义指向引用的指针

6、const限定符

  • const对象一旦创建后就不能再改变,所以const对象必须初始化
  • const变量不管是声明还是定义都添加extern,这样只需要定义一次就可以了

7、初始化和const的引用

  • 初始化常量引用时,允许任意表达式作为初始值,只要该表达式能被转换成引用的类型就可以:引用使用了中间临时变量

8、顶层const和底层const

int i = 0;
const int *const p = i;    //第一个为底层,第二个为顶层
const int &r = i;        //用于声明引用的const都是底层const
  • = 号的左边必须是可改变的左值
  • =号的左右两边可以把限制小的赋值给限制大的(const越多限制越大)

9、类型别名:typedef = using

10、auto:让编译器自动识别,但是必须有初始值;

11、decltype:通过表达式来推出变量的类型

12、防止头文件的重复包含(VS中可以使用#pragma once)

#ifndef SALES_DATA_H
#define SALES_DATA_H
int main()
{
....
}
#endif
posted @ 2015-09-20 21:41  dylqt  阅读(154)  评论(0编辑  收藏  举报