《跟我一起学C++》01-25集免费下载地址:
http://pan.baidu.com/share/link?shareid=95921&uk=2234050618
第一集
1,c、c++ 和 java、.net 对于编程语言的需求的区别:
编程语言的需求总结为4个:效率(efficiency)、灵活(flexibility)、抽象(abstraction)、生产力(productivity),c语言注重前两者、c++注重前3者、java、.net注重后两者
2,c++支持的编程范式(paradigm):
(1) 过程式(procedual)
(2)数据抽象 (data abstraction)
(3)基于对象 (object_based)
(4)面向对象式 (object——oriented)
(5)函数式 (functional)
(7)泛型式
(8)模板元形式
第二集
1, bool、const关键字
(1)bool
非零对应的是true 零对应的是false
(2)const
const int * p; //*p 是一个常量
int * const p = &a; // p是一个常量,必须进行初始化
const 定义的常量有类型 编译时进行内存分配,#define定义的常量没有类型 编译时不进行内存分配
2,结构体内存对齐
(1) 第一个成员与结构体变量的偏移量为0
(2)其他成员要对齐到某个整数的整数被的地址
(3)结构体的大小为最大对齐数的整数倍
#pragma pack(4)
#pragma pack()
通过“pragma pack”设置对齐数
第三集
1,new delete用法
(1)new的三种用法
new operator 分配内存 调用构造函数
operator new 分配内存
placement new 不分配内存 调用拷贝构造函数
(2)delete 执行的操作
调用析构函数
释放内存(operator delete)
2,重载
(1)函数的重载属于静态联编(编译时期确定函数的入口) ,virtual(动态联编)
(2)c++ 为了支持重载,需要进行name manageling (名字改编)
3,extern “C” 实现c与c++的混合 编程
第四集
1,引用
(1) const引用是指向const对象的引用
const int val = 1024;
const int& refval = val; //true
int& refval2 = val; //false const int 不能够转换成int&
(2) 引用传递
引用作为参数传递:在函数定义的时候,在参数前面添加“&” 引用运算符 在函数进行调用时,对引用进行初始化
void swap(int& x, int& y );
引用作为返回值:可以使得函数作为赋值运算符的左值
不能够返回对局部变量的引用
int& index(int i) { return a[i]}
index(5) = 100; //100 赋值给a[5]
第5集
1,内联函数 inline 在编译起对代码进行展开
2,强制类型转换:
const_cast 去除常量性,函数可以接收实际参数
static_cast
reintepret_cast