01 2019 档案

摘要:C++ 异常机制分析 函数级try块 有关Function Try Block的法则 C++学习之构造函数中的异常处理 异常机制概述 异常处理是C++的一项语言机制,用于在程序中处理异常事件。异常事件在C++中表示为异常对象(主要针对类来说)。 1. 基本概述 首先try块试图运行代码,若该代码出现 阅读全文
posted @ 2019-01-22 17:15 两猿社 阅读(1599) 评论(0) 推荐(0)
摘要:C++强制类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast C强制转换 C语言中的强制转换主要用于普通数据类型、指针的强制转换,没有类型检查,转换不安全,语法为: C++除了能使用c语言的强制类型转换外,还新增了四种强制类型转换:st 阅读全文
posted @ 2019-01-22 14:58 两猿社 阅读(6174) 评论(1) 推荐(2)
摘要:函数模板 模板概念及语法 主要目的,简化代码,减少重复代码。基本语法格式: template<class T> 或者 template<typename T> //末尾不加分号 函数模板与普通函数 1.与类模板区别 template声明下面是函数定义,则为函数模板,否则为类模板。注意:每个函数模板前 阅读全文
posted @ 2019-01-21 10:58 两猿社 阅读(710) 评论(0) 推荐(0)
摘要:为什么要进行内存对齐以及对齐规则 C/C++—— 内存字节对齐规则 C++内存字节对齐规则 阅读全文
posted @ 2019-01-20 10:27 两猿社 阅读(313) 评论(0) 推荐(0)
摘要:深入理解指针类型间的转换 C++中指针的强制转换 强制类型转换(int)、(int&)和(int*)的区别 内存中的地址 地址的本质就是一串0和1的机器代码,内存中的地址没有明确数据类型,但地址值有类型,以32位编译器为例,内存中的地址是一个32位的整数。无论什么类型的指针变量,在内存中本质上都是一 阅读全文
posted @ 2019-01-19 20:22 两猿社 阅读(33010) 评论(1) 推荐(3)
摘要:深入剖析C++多态、VPTR指针、虚函数表 C++虚函数表分析 C++继承中重载、重写、重定义的区别: C++虚函数表剖析 C++获取虚表地址和虚函数地址时的两个强制类型转换 类型兼容性原则 类型兼容规则是指在需要基类对象的任何地方,都可以使用公有派生类的对象来替代。通过公有继承,派生类得到了基类中 阅读全文
posted @ 2019-01-17 20:34 两猿社 阅读(846) 评论(0) 推荐(0)
摘要:继承引出 继承主要是为了减少代码的重复内容,解决代码复用问题。通过抽象出一个基类(父类),将重复代码写到基类中,在派生类(子类)中实现不同的方法。 语法: class 子类:继承方式 父类 继承方式 继承方式有公有继承,私有继承,保护继承。 (1)公有继承:保持父类中的访问属性; (2)私有继承:将 阅读全文
posted @ 2019-01-16 15:36 两猿社 阅读(625) 评论(0) 推荐(0)
摘要:一、基本属性 (1)运算符重载的目的是扩展C++中提供的运算符的适用范围,使之能作用于对象,或自定义的数据类型; (2)运算符重载的实质是函数重载,可以重载为普通成员函数,也可以重载为成员函数; (3)运算符重载也是多态的一种,和函数重载称为静态多态,表示函数地址早绑定,在编译阶段就确定好了地址; 阅读全文
posted @ 2019-01-14 20:17 两猿社 阅读(851) 评论(0) 推荐(0)
摘要:友元主要是为了访问类中的私有成员(包括属性和方法),可以分为友元函数(全局函数),友元类,友元成员函数。 全局函数做友元函数 友元函数是可以直接访问类的私有成员。它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时在函数名称前加上关键字friend,其格式如下: friend 阅读全文
posted @ 2019-01-11 11:31 两猿社 阅读(605) 评论(0) 推荐(0)
摘要:this指针引入 类中对象的成员变量和成员函数是分开存储的,sizeof(空class) = 1,另外示例中涉及到字节对齐的问题,double本身的字节为8,int为4,由于字节对齐,int也为8,所以最终字节数为16 非静态成员变量才属于对象本身,静态成员变量、函数、非静态成员函数(非内联)不属于 阅读全文
posted @ 2019-01-10 16:37 两猿社 阅读(529) 评论(0) 推荐(1)
摘要:比如,windows下的任务管理器界面,即使未关闭当前界面,重新启动任务管理器,目前显示的仅有一个,和之前未关闭的为同一个界面。 抽象来说:一个类中只能实例出一个对象。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,如果希望系统中某个类的对象只有一个,则会用到单例模式。 实现方法 阅读全文
posted @ 2019-01-10 15:19 两猿社 阅读(556) 评论(0) 推荐(0)
摘要:若将成员变量声明为static,则为静态成员变量,与一般的成员变量不同,无论建立多少对象,都只有一个静态成员变量的拷贝,静态成员变量属于一个类,所有对象共享。静态变量在编译阶段就分配了空间,对象还没创建时就已经分配了空间,放到全局静态区。 静态成员变量 注意事项:(1)最好是类内声明,类外初始化(以 阅读全文
posted @ 2019-01-10 10:51 两猿社 阅读(715) 评论(0) 推荐(0)
摘要:实现任意数据类型的顺序表的初始化,插入,删除(按值删除;按位置删除),销毁功能。、 顺序表结构体 实现顺序表结构体的三个要素:(1)数组首地址;(2)数组的大小;(3)当前数组元素的个数。 注意事项:void **addr为二级指针,即数组的元素也为指针,因为我们并不知道用户的输入数据是什么类型,操 阅读全文
posted @ 2019-01-08 21:54 两猿社 阅读(1680) 评论(0) 推荐(0)
摘要:细说new与malloc的10点区别 C++ 自由存储区是否等价于堆? 浅谈new/delete和malloc/free的用法与区别 new和malloc都是在对上开辟内存,但尽量使用new。 使用malloc的注意事项:(1)程序猿必须实现确定对象的长度;(2)malloc返回一个void*指针, 阅读全文
posted @ 2019-01-08 09:59 两猿社 阅读(467) 评论(0) 推荐(0)
摘要:构造函数和析构函数,分别对应变量的初始化和清理,变量没有初始化,使用后果未知;没有清理,则会内存管理出现安全问题。 构造函数和析构函数写法 构造函数:与类名相同,没有返回值,不写void,可以发生重载,可以有参数,编译器自动调用,只调用一次。 析构函数:~类名,没有返回值,不写void,不可以发生重 阅读全文
posted @ 2019-01-07 19:33 两猿社 阅读(620) 评论(0) 推荐(0)
摘要:内联函数 宏可以避免函数调用带来的开销,但存在两个问题:1)宏没有作用域,没有类型检测,另外定义宏时,需要时刻注意加括号,除此之外,当传入变量自增时,会出现不可避免的错误。2)C++中宏不能作为类的成员函数,因为预处理器不能访问类成员。 内联函数主要为了替代宏,另外,类中的成员函数默认加了inlin 阅读全文
posted @ 2019-01-03 18:35 两猿社 阅读(477) 评论(0) 推荐(0)
摘要:初识类(class&struct) 面向对象三大特性:封装、继承和多态。其中不得不谈的就是类,通过类创建一个对象的过程叫实例化,实例化后使用对象可以调用类成员函数和成员变量,其中类成员函数称为行为,类成员变量称为属性。类和对象的关系:类是对象的抽象,对象是类的实例。 从上面的代码中可以看出,在类内或 阅读全文
posted @ 2019-01-03 16:10 两猿社 阅读(888) 评论(0) 推荐(0)
摘要:直接上代码,分别是栈上开辟内存,堆上开辟内存 如果是用指针来复制数组,不要用以下代码 因为没有开辟内存,直接对指针自增会出现访问冲突 阅读全文
posted @ 2019-01-02 21:34 两猿社 阅读(2499) 评论(0) 推荐(0)
摘要:引用,用途是对变量取别名,本质是一个指针常量。 1.初始化 &写在左侧为引用,写在右侧为取地址,引用用法:Type &别名 = 原名。 引用必须初始化,另外初始化后不能再修改指向其他变量 对数组起别名 2.参数传递方式 引用传参和地址传参的作用是一样的,都是为了修改变量值,其中引用后面的a和b相当于 阅读全文
posted @ 2019-01-01 21:32 两猿社 阅读(334) 评论(0) 推荐(0)
摘要:C++对C的扩展 1. 双冒号::作用域运算符 代码中对同一个变量多次声明,在代码块中使用时,局部变量会将全局变量隐藏。若在代码块使用变量前添加::,表示为全局变量。 ::表示作用域运算符,如常见的std::cout,std::endl;等,表示cout和endl是std作用域下的标识符。 2. 命 阅读全文
posted @ 2019-01-01 15:18 两猿社 阅读(1985) 评论(0) 推荐(0)