
C++Primer学习
如题
kakakadela
这个作者很懒,什么都没留下…
展开
-
string
string可直接用于输入输出流空白:空格、换行、制表符输入流获取时,会自动过滤字符串首部的空白,从第一个真正字符还是到下一个空白结束string a;cin>>a;cout<<a;输入“ 123456 456789”输出“123456”getline函数读取一整行入参: getline(输入流,string对象)返回值:返回流参数功能:从入参输入流中读取内容,直到遇到换行符,注意换行符也会被读入,然后将读入内容放到string对象中,此...原创 2020-05-15 01:17:50 · 146 阅读 · 0 评论 -
using声明
有了using声明之后。无需作用域操作符::前缀来声明命名空间,如:using std::cin头文件中一般不要包含using,因为头文件中的内容会被拷贝到其他文件,防止不经意间的声明原创 2020-05-15 00:44:38 · 143 阅读 · 0 评论 -
类内成员的初始值
类内初始值即在定义时未赋初值,将用该值初始化成员 int a = 0; int b(1); //错误,不能用()提供初始化 int c{ 2 }; int d = { 3 };原创 2020-05-10 22:27:33 · 666 阅读 · 0 评论 -
decltype
返回操作数的数据类型,如decltype(f()) sum=0;与auto不同,decltype会保留所有的const属性decltype和引用int a=0,&b=a,*c=&a;decltype(b)为 int& //保证与原类型相同decltype(b+0)为int //表达式的返回值为intdecltype((a))为int& //变量加()这个整体被认为是表达式,表达式的返回值为引用,这是规定declt...原创 2020-05-10 22:18:36 · 154 阅读 · 0 评论 -
auto
auto语句推断变量类型,一条语句仅能有一种类型,如:auto a=1,b=3.14;//错误auto会自动将赋值对象的引用属性去掉,如:int a=0,&b=a;auto c=b; //auto为intauto不保留顶层的const属性,但会保留底层的cosnt,如const int a=0;auto b=a; auto为int而非const int如果需要有顶层const属性,则需要加:const auto &a=42;所谓顶层const:本身是const原创 2020-05-10 21:53:17 · 387 阅读 · 0 评论 -
类型别名typedef
类型别名不是简单的将原名替换进去理解,而是相当于加了整体加了括号的优先级提升,如typedef char* stringconst string a=0与const char *a=0意义完全不同,前者a为常量指针,后者为指向常量的指针原创 2020-05-10 21:29:07 · 145 阅读 · 0 评论 -
const和constexper
编译器再编译过程中把const修饰的变量全都替换为值,而与此矛盾的是全局变量只能定义一次,其他地方只是声明,无法获取初值,为此设定了const对象只在文件内有效,然后所有用到它的文件全都重新赋值共享const对象的方法:1. 将const常量放在公共头文件中,直接包含头文件,相当于每个都有自己独立的定义2. 将const对象的定义和声明处全都添加const修饰,即相当于强行添加const属性一、const的引用正常情况,引用的类型必须与其引用对象的类型保持一致,但初始化常量引用有两个例外原创 2020-05-10 21:22:40 · 520 阅读 · 0 评论 -
引用、指针
引用只能绑定在对象上,不能给表达式或者字面值引用一旦定义不能再绑定到其他对象引用不是对象,没有实际地址,因此不能定义指向引用的指针预处理变量NULL:此变量不属于命名空间std,由预处理器负责管理定义指向指针的应用: int a = 123456; int *b = &a; int *&c = b; cout << *c;...原创 2020-05-10 20:12:57 · 102 阅读 · 0 评论 -
初始化、赋值、声明、定义
初始化和赋值是两个完全不同的操作列表初始化:用花括号{}来初始化变量,列表初始化下,如果损失精度会编译错误,正常初始化则是warning常见初始化方法 int a = 1; int b = { 2 }; int c(3); int d{ 4 }; double e{ 5.0 }; int f(e); //warning int g{ e };//error默认初始化:定义于任何函数体之外的变量会被初始化为0,函数体内部的则不被初始化...原创 2020-05-10 19:57:35 · 267 阅读 · 0 评论 -
变量与基本类型
1.有符号与无符号char在一些机器上是有符号的,在一些机器上是无符号的2.类型转换当付给无符号类型一个超出它表示范围的值时,初始值为取模后的余数当付给有符号类型一个超出它表示范围的值时,初始值为未定义的...原创 2020-05-10 15:10:25 · 121 阅读 · 0 评论 -
iostream库
iostream包含了两个基础类型istream和ostream表示输入流和输出流输出运算符<<: 接受两个运算对象,左侧必须为一个ostream对象,右侧为要打印的值,运算结果为左侧的运算对象,因此输出运算符可以连续使用。输入运算符同上。当使用一个istream对象作为条件时,即考察对象的真假,当遇到文件结束符、或无效的输入(如输入类型非法)时,istream对象非法,即为假举例:int a,b=0;while(cin>>a)b+=a; 此处输入1 ...原创 2020-05-09 23:52:02 · 472 阅读 · 0 评论 -
c++Primer学习ing
尝试通篇读一下c++primer原创 2020-04-22 20:59:44 · 84 阅读 · 0 评论