有了递归实现为啥还要用非递归呢?你会不会有疑惑?如果有,请接着看。 函数的调用需要用到栈,一个应用分配到的栈空间一般为1M大小,在数据很大的情况会造成栈溢出,所以要少用递归。...
有了递归实现为啥还要用非递归呢?你会不会有疑惑?如果有,请接着看。 函数的调用需要用到栈,一个应用分配到的栈空间一般为1M大小,在数据很大的情况会造成栈溢出,所以要少用递归。...
删除数据 遍历数据 销毁
定义结构体 初始化根节点 添加节点 调节平衡
编写: 创建一个新项目,右键解决方案--->添加--->新建项目 空选项--->下一步 输入名字和路径---->创建 右键项目名--->新建项--->新建一个.h头文件和.c...
try试图执行 try{}中的内容 在可能出现异常的地方 抛出异常 throw try下面 catch捕获异常 catch(捕获类型)...代表 所有其他类型 如果不想处...
静态转换 格式: 可以进行基础数据类型转换 父与子类型转换 没有父子关系的自定义类型不可以转换 例: 动态转换 格式: 基础类型不可以转换 非常严格,失去精度或者不安全都不可...
格式: 例: 类模板做函数参数 方式一:显示指定类型 方式二:参数模板化 方式三:整体类型化 例: 例2: 例3: 查看数据的名称 类模板碰到继承 基类如果是模板类,必须让子...
自动类型推导,必须有参数类型才可以推导 例: 显示指定类型 模板必须要指定出T才可以使用 普通函数和函数模板的区别 函数模板和普通函数在一起调用规则: 如果出现重载,优先使用...
c++支持编译时多态(静态多态)和运行时多态(动态多态),运算符重载和函数重载是编译时多态,而派生类和虚函数实现运行时多态。 运行时多态:在父类上声明虚函数,发生了多态。 父...
继承 语法: 继承方式: public: 公有继承 protected:保护继承 private:私有继承 继承中的对象模型 子类会继承父类中所有的内容,包括了私有属性 只是...
对于内置数据类型,编译器知道如何做运算,编译器不知道如何让两个类进行运算 如果向让自定义数据类型 进行+法运算,就需要重载+运算符 在成员函数或者全局函数里 ,重写一个+法...
友元函数 全局函数做友元函数 格式: 例: 成员函数做友元函数 例: 友元类 格式: 例:
void指针访问成员函数 如果成员函数没有用到this指针,那么空指针可以直接访问 如果成员函数用到this指针,要注意加if判断,如果this为NULL,return 常函...
类中默认有一个对象的this指针,编译器默认加的 this可以解决命名冲突 指针永远指向当前对象 *this永远指向本体-非静态成员方法才有指针
编译阶段分配内存 所有对象共享数据 可以通过对象访问、通过类名访问 有权限控制 类内声明,类外初始化(通过类名访问是会不调用构造函数) c++静态成员方法 可以访问静态成员变...
初始化和清理 对象的初始化和清理是两个非常重要的安全问题,一个对象或变量没有初始时,对其使用后果未知,同样的使用完一个变量,没有及时清理,也会造成一定的安全问...
c语言的封装属性和行为分开处理,类型检测不够 c++中的封装 严格类型转换检测,让属性和行为绑定到一起,属性和行为作为一个整体来表示生活中的事物。 控制权限: class和s...
解决了c++中调用c语言的代码 方法一 c++中处理 方法二 c中处理
函数重载 语法:函数名相同,函数参数不同 实现函数重载的条件 同一个作用域 参数个数不同 参数类型不同 参数顺序不同 函数重载实现原理 函数默认参数 参数可以有默认值 如果有...
引用就是起别名 引用的基本语法 引用必须初始化 ,引用初始化后不可修改 对数组起别名 引用传递 引用的注意事项 引用必须引一块合法的内存空间(int &a=10;错误的方式...