类与面向对象

前面简介似的整理完了C语言的笔记,真是汗颜,不过这样开始也要比一直就那么放着要有意义。
这段时间就趁着所学还未完全冷却,好好回忆、整理、总结一下吧!接下来是C++的笔记...

1、从 C 到 C++

 C++是在C语言的基础上,增加了面向对象程序设计的支持,是C语言的超集。与C相同的是,C++程序结构同样采用函数驱动机制,实现类的封装,数据隐藏,继承及多态。既可以进行过程化程序设计,又可进行面向对象程序设计。
 面向对象程序设计三要素:对象、类和继承;
 面向对象程序设计三大特征:封装性、继承性、多态性;
 其中,封装性是基础,继承性是关键,多态性是补充;

2、C与C++中 const 限定符的区别

 C 中 const限定符   :一个不能改变值的变量
 C++中const限定符:一个带有类型描述的常量

 例:
 const int * pNumA;    // const 在 * 左边,表示 *pNumA 为常量
 int * const pNumB;    // const 在 * 右边,表示   pNumB 为常量

3、const 与 define

 a. const 定义的常量有类型,而define 定义的无类型
 b. const 在编译时分配内存,而 define 定义的常量在预编译时进行替换
 c. const 定义的常变量作用域为该变量的作用域,而 define 定义的常量的作用域为其定义点到程序结束,或用 #undef 取消

4、堆空间的申请

 对比C中的malloc( )、free( ),C++中使用运算符 new 与 delete 来申请堆空间

 注:delete 与delete[ ]
 int *pNum = new int('ha');      // 分配一个int型的空间并初始化
 int *pBuffer = new int[10];     // 分配10个int型空间
 .....
 delete pNum;                         // 释放单个对象
 delete[] pBuffer;                     // 释放一组对象

5、函数重载与默认参数

 函数重载:
 在C中,若两个函数重名且参数不同,在编译时将会报错。
 而C++会根据传入参数的不同而决定调用哪个函数,是一个典型的重载函数,C++中的名称粉碎机制就是为了支持这一特性而提出

 默认参数:
 在C++中,函数声明或定义时,可以给形参赋默认值(从右至左),调用函数时,若未给定实参,则按照指定的默认值进行工作。

6、引用

 定义:变量别名

 一般格式:类型  &引用名 = 变量名

 示例:
 int nNum;
 int &nCount = nNum;

 注:
 a.引用只是变量别名,二者实际上是同一个变量,也就是 nNum 和 nCount 表示同一个变量,二者地址完全相同;
 b.定义引用时必须要初始化,以确定引用是哪个变量的别名;
 c.引用初始化后不能更改
 d.const引用可以初始化为不同类型,非const引用只能初始化为相同类型 

 引用与指针对比:
 a.引用访问一个变量属于直接访问,而指针访问一个变量属于间接访问(保存的是变量的地址);
 b.引用只是变量别名,不是一个单独的变量,没有自己单独的内存空间,而指针是一个单独的变量,有自己单独的内存空间;
 c.引用一经初始化不能再引用其他变量,而指针则可以通过重新赋值指向另外一个变量(非const 指针);

 三种传参方式比较:
 值传递:实参初始化形参要分配空间,将实参内容拷贝到形参;
 指针传递:实参初始化形参要分配空间,将实参地址拷贝到形参(本质上仍是值传递);
 引用传递:实参初始化形参不需分配空间;

7、类型转换

 a. const_cast:常量类型转换
     作用:去除被转换变量的const属性,使得常量指针被转换为非常量指针,并且仍然指向原来的对象;常量引用转换为非常量引用,并且仍然指向原来的对象;

 b. static_cast:静态类型转换
     作用:强制转换

 c. reinterpret_cast:重定义类型转换
     作用:将目标变量按其转换类型重新解释,并进行操作

 d. dynamic_cast:动态类型转换
     作用:在执行期决定真正的类型

8、C++的输入输出机制

 I/O流是指输入输出的一系列数据流;
 输出使用插入操作符“<<”向输出流中插入字符;
 输入使用抽取操作符“>>”从输入流中抽取字符;

 输入输出控制符在头文件 iomanip 中定义;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值