继承性

从继承源上看,继承可分为单一继承和多重继承两种

C++语言和C语言的关系

  • 作为面向过程的程序设计语言(C语言),C++语言与C语言的关系可以用继承和改进来概括

  • C语言是C++语言的一个子集

  • C语言的指针在C++语言中一样使用,但是C++语言在动态内存空间的管理上引入了更方便地方式,C++语言通过增加引用大大减少了不安全指针的引用

  • C++语言增加了行注释符,为单行注释提供了方便

  • C++语言引入了名字空间,防止同名的冲突问题

  • C++语言建议使用const关键字来定义符号常量,使常量具有类型,解决了宏定义下的符号常量无类型说明的问题

  • C++语言规定函数说明必须使用原型声明方式,不允许使用简单说明方式

  • C++语言允许局部变量随用随定义,不必局限在语句块的开头定义,更加灵活

  • C++语言允许函数的形式参数带有默认值,这给函数的调用带来方便

  • C++语言引进了函数重载和运算符重载机制,方便了编程

  • C++语言引进了内联函数,建议使用内联函数代替带参数的宏定义,增加了对参数类型的说明

  • C++语言引进了引用的概念,使得可以通过变量的别名直接操作变量本身,而不必通过指向变量的指针间接操作变量,这样大大减少了指针的使用,提高了安全性

  • C++语言利用指针使用new和delete运算符代替函数更方便地进行动态内存空间的分配和释放

  • C++语言提供了异常的检查、处理机制,提高了程序的健壮性

输入和输出

在程序中要想直接使用cin和cout,必须做正确的文件包含:#include<iostream>及using namespace std;或#include<iostream.h>

函数重载

  • 在C++语言中,对于功能完全相同或相似,只是在形式参数的个数、类型、顺序方面有区别的不同函数以相同的函数名来命名,该同名函数称为被重载,形式参数的个数、类型、顺序的某一个方面或几个方面必须有所区别,返回值的类型是否相同并不是函数重载的判断条件

  • 重载错误:void Fun(int=3);与void Fun();二者虽然形式参数的个数不同,但是由于默认值,如果调用时不提供实参则无法判断调用的是哪一个函数

  • 重载错误:void Fun(int);与void Fun(int&);二者是值形式参数与引用参数的区别,这时如果调用Fun(a)则无法判断调用的是哪一个函数

用new申请动态内存空间

  • 在C++语言中,新增加的关键字new是一个运算符而不是一个库函数。使用new运算符可以更简单的申请动态存储空间具体形式是:new 数据类型名;或 new 数据类型名 【整型常量】;int *ptr ; ptr = new int ;(利用new申请一个Int大小的内存空间,指针指向起始地址) ptr = new int [10] {利用new申请连续10个int大小的内存空间实现动态一维数组}

  • 有一种形式容易与申请数组空间混淆,ptr=new int(10),语句等效于以下两条语句:ptr=new int;和*ptr=10;表示在申请一个int大小的内存空间的同时向该空间中赋值10

用delete释放动态内存空间

  • 在C++语言中,使用delete运算符来释放动态内存空间,具体形式为:delete 指针变量名;或delete 【】指针变量名;分别用于释放单个动态内存空间和一维数组空间,当用ptr = new [10];申请动态内存空间,如果用delete ptr;释放,编译器不会报错,但是十分危险,因为delete ptr;只能实现释放由ptr指针所指向的当前一个int大小的动态内存空间,其后连续的其他9个int动态内存空间将无法释放,这会导致内存泄漏

  • delete也是C++语言中新增加的的关键字,也是一个运算符而不是库函数

  • 在C++语言中,在使用new 或 new[]申请了动态内存空间后,一旦这部分动态内存空间使用结束,一定要及时使用delete或delete[]释放空间,否则会产生内存垃圾,影响程序的正常运行,还可能导致死机

 

10-03 22:13