C++笔记

来源:互联网 发布:淘宝优站网址 编辑:程序博客网 时间:2024/05/16 10:40

C++标准规定了每个算术类型的最小存储空间,但并不阻止编译器使用更大的存储空间。

算术类型:整数、浮点数、单个字符、布尔值

类型          最小存储空间

bool         ----

char        8位

wchar_t    16

short         16

int                16

long            32

float             6位有效数字

double     10位有效数字

long double  10位有效数字


8位的字节和一个地址相对应


一般,short为半个机器字长,int为一个机器字长,long为一个或者两个机器字长    32位机器中int和long一般字长相同


一般,float用一个字来表示,double两个字,long double 用三个或者四个字表示


为了兼容C语言,C++中所有的字符串字面值都由编译器自动在末尾添加一个空字符。‘A’表示单个字符A  “A”表示包含字母A和空字符的字符串。


变量的定义、声明 区别

1、extern声明位于函数外部时,才可以含有初始化


c++作用域:(全局、局部、类作用域、命名空间作用域)


非const全局变量默认为extern,即其他cc文件可以访问,但要使const对象能在其他文件中访问,就必须显示地制定为extern


枚举对象只能通过其内部成员或者同类型的枚举对象来赋值


类的花括号后面必须有分号


定义变量和定义数据成员的区别:

1、一般不能把雷成玉的初始化最为其定义的一部分。


使用struct 还是class定义类仅仅影响默认的初始化访问级别。struct默认是public,class默认是private。  类的定义一般都会放在头文件中。


C++分别编译


头文件一般放类的定义、extern变量的生命和函数的声明。

1、头文件不应该含有定义普通变量。

2、头文件可以定义const对象、inline函数



C++预处理器


普通引用和const引用区别:

1、普通引用的赋值只能是变量或者引用

2、const引用的赋值可以使常量或者常量表达式


在头文件中一般用玩去限定的标准库名字,因为头文件内容会被预处理器复制到程序,头文件一般指定义确实必要的东西。


字符串字面值与标准库string类型区别


cin string:

1、忽略开头所有空白符(空格、换行、制表符)

2、直到遇到下一空白符


getline读取整行:

1、不忽略行开头的换行符,只要遇到换行符就翻译,返回时丢弃换行符


标准库string,size()返回的是string::size_type类型的值,不能赋值给int,怕越界


字符串链接:+的左右操作数必须至少有一个是string类型的,不可以都是字符串字面值


vector初始化:

1、如果是内置类型,用0初始化

2、如果是含有构造函数的类类型,用其默认构造函数初始化

3、如果是没有定义任何构造函数的类类型,辩证看仍产生一个带初始值的对象,然后初始化


标准库bitset类型



0 0