首页 > 编程语言 > 详细

C++ Primer ch1-ch2笔记

时间:2017-01-17 23:16:55      阅读:300      评论:0      收藏:0      [点我收藏+]

ch1
1,
endl 操纵符
写入endl的效果是结束当前行,并将与设备关联的缓冲区(buffer)中的内容刷到设备中。


2,
命名空间 namespace
作用域运算符 ::

作用域运算符可以用来显式访问全局变量:(但在块内外使用同样名字的变量不被建议)
如:

int val = 0;
int main()
{
int val = 1;
cout << val << endl;
cout << ::val << endl;
return 0;
}

执行结果将是:
1
0


3,
类(class)的概念:
一种用于自己的数据结构及其相关操作的机制。
成员函数:
class.(member function)

 

ch2
1,
当一个算术表达式中既有无符号数又有int值时,那个int值就会转换为无符号数。
如:

unsigned u = 10;
int i = -42;
cout << i + u << endl;// 如果int占32位,输出429467264

另外,当从无符号数中减去一个数时,不管这个值是不是无符号数,
我们都必须确保结果不能是一个负值。
如:

unsigned u = 10,i = 42;
cout << u - i << endl;// 输出32

 

2,
对象(Object),通常情况下,是指一块能存储数据并具有某种类型的内存空间。

3,
初始化与赋值的区分:
初始化不是赋值,初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把
对象的当前值擦除,而以一个新值来替代。


4,
初始化有好几种不同形式:

int val = 0;
int val = {0};
int val{0};
int val(0);

作为C++11标准的一部分,用花括号来初始化变量得到了全面应用,这种初始化的形式被
称为列表初始化。当用于内置类型的变量时,这种初始化形式有一个重要特点:如果我们
使用列表初始化且初始值存在丢失信息的风险,编译器将会报错:

double val = 3.141592;
int a{val},b = {val}; // 错误:存在丢失信息的风险
int c(val),d = val; // 正确,转换执行,但确实丢失了部分信息

 

5,
变量声明和定义的关系
定义:初次创建;声明:从别处摘用(自己的理解)
如:

extern int i; // 声明i而没有定义
int j; // 声明并定义j

我们能给由extern关键字标记的变量赋一个初始值,但是这么做也就抵消了extern的作用:

extern double pi = 3.141592;// 定义

在函数体内部,如果试图初始化一个由extern关键字标记的变量,将引发错误。


6,
引用(reference)为对象起了另外一个名字,引用类型引用另外一种类型。
通过将声明符写成&d的形式来定义引用类型,其中d是声明的变量名:

int ival = 1024;
int &referval = ival;

引用必须被初始化。

指向指针的引用:

int val = 1;
int *pt = &val;
int *&r = pt;

7,
顶层const表示指针本身是个常量
底层const表示指针指向的对象是一个常量

const int *p = NULL; // 底层const
int *const p = NULL; // 顶层const

8,
C++11 using:

typedef int shit;

相当于

using shit = int;

9,
C++11 auto:
让编译器替我们去分析表达式所属的类型:

auto item = val1 + val2;
auto sz = 0,pi =3.14; // 错误:一条语句中所有变量的初始基本类型都必须一样。

10,
C++11 decltype:
从表达式的类型推断出要定义的变量的类型:

int val = 1;
decltype(val + 1.5) res = val + 1.5;//分析val+1.5的值并将res声明为其类型
cout << res << endl;

C++ Primer ch1-ch2笔记

原文:http://www.cnblogs.com/ray-coding-in-rays/p/6295015.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!