- 博客(13)
- 收藏
- 关注
转载 C++11 标准新特性:Defaulted 和 Deleted 函数
Defaulted 函数背景问题C++ 的类有四类特殊成员函数,它们分别是:默认构造函数、析构函数、拷贝构造函数以及拷贝赋值运算符。这些类的特殊成员函数负责创建、初始化、销毁,或者拷贝类的对象。如果程序员没有显式地为一个类定义某个特殊成员函数,而又需要用到该特殊成员函数时,则编译器会隐式的为这个类生成一个默认的特殊成员函数。例如:清单 1 class
2017-01-22 13:52:42
307
原创 C++学习笔记之异常处理
异常处理学习笔记:C++的异常处理机制被称为是不可恢复的:一旦异常被处理,程序的执行就不能够在异常被抛出的地方继续。如果这些 catch 子句不包含返回语句,在catch子句完成它的工作之后,程序的执行将在 catch 子句列表的最后子句之后继续进行。1. 抛出异常:throw 表达式(表达式可以是任何类型的对象)抛出一个类时,可以调用类的构造函数 classname() 抛
2017-01-17 11:55:06
434
原创 C++学习笔记之运行时刻类型识别RTTI
运行时刻类型识别RTTI仅当有一个指针或引用指向基类型时,利用运行时类型识别(RTTI)可以找到一个对象的动态类型。1. 运行时类型转换 dynamic_cast转换类型:上行转换up-casting (把派生类的指针或引用转换成基类的指针或者引用表示)下行转换down-casting(把基类指针或引用转换成子类的指针或者引用)dynamic_cast 要求转换的
2017-01-16 15:37:31
476
转载 C++ 虚函数表解析
C++ 虚函数表解析 陈皓http://blog.youkuaiyun.com/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,R
2017-01-16 14:01:35
194
原创 C++学习笔记之类的构造函数
1. 当类只有公有数据成员时,不需要构造函数,可以直接赋值,这是从从 C 语言继承来的机制支持显式初始化表。class base{private: int print(void);public: int val; char *ptr; }; base a = {12,"test base"}; 显示初始化缺点:1. 它只能被应用在所有数据成员都是公有的类的对象上2. 要
2017-01-14 15:49:07
375
翻译 dlmalloc 文件头翻译
重要统计数据:1. 支持size_t类型:size_t 必须是和指针宽度相同的无符号类型。(如果使用旧的操作系统声明size_t为有符号或者宽度和指针不同,可以用以前的版本(例如:2.72)支持这些)2. 对齐(默认8字节对齐)8字节对齐,对于当前的几乎所有的机器和编译器都是足够的。以牺牲更多空间为代价,可以将MALLOC_ALIGNMENT定于的更宽(如果需要可以提升到1
2017-01-13 17:44:22
565
原创 C++学习笔记之虚函数
C++学习笔记之虚构函数虚函数(virtual修饰)当成员函数是虚拟的时候,通过一个类对象(指针或引用 )而被调用的该成员函数 ,是在该类对象的动态类型中被定义的成员函数虚拟函数机制只在使用指针和引用时才会如预期般地起作用只有在通过基类指针或引用间接指向派生类子类型时,多态性才会起作用纯虚函数纯虚函数只是提供了一个可被子类改写的接口,它本身并不能通过虚拟机制被调用。
2017-01-11 18:21:59
421
转载 虚析构函数和protected析构函数
一、虚析构函数类型需要虚析构函数的另外一个特征 是该类型具有指针成员或引用成员。如果有指针成员和引用成员,则该类型通常需要实现析构函数以及拷贝操作。 通常,一个实现了析构函数的类型同时也需要实现拷贝构造函数与拷贝复制函数。 作为一个经验法则:如果你有一个带有虚函数功能的类,则它需要一个虚析构函数,原因如下: 1. 如果一个类有虚函数功
2017-01-11 18:04:46
580
转载 纯虚函数
一、定义.纯虚函数是在基类中声明的虚函数,它在基类中没有定义,但要求任何派生类都要定义自己的实现方法。在基类中实现纯虚函数的方法是在函数原型后加“=0”virtual void funtion1()=0二、引入原因:1、为了方便使用多态特性,我们常常需要在基类中定义虚拟函数。2、在很多情况下,基类本身生成对象是不合情理的。例如,动物作为一个基类可以派生出老虎、孔
2017-01-11 11:48:31
272
原创 C++学习笔记之关键字
总结C++关键字ISO C++98/03关键字共63个,同C语言相同的关键字32个控制结构关键字(12):跳转结构:break,continue,goto,return分支结构:if,else,switch,case,default循环结构:while,do,for存储类关键字(6):auto,static,extern, const,volatile, regis
2017-01-10 11:51:07
426
翻译 数据对齐
为了速度和正确性去对齐你的数据 对于直接使用内存的所有程序员来说,数据对齐是一个重要问题。即使软件运行, 数据对齐也会影响软件的性能。 如本文所示,理解对齐的本质也可以解释一些处理器的“怪异”行为。内存访问的最小单位程序员习惯把内存看成是一个简单的字节数组。在C语言及其派生的语言中,char *一般认为是一块内存,甚至在Java语言中也有byte []类型来表示原始内存。
2017-01-02 20:42:34
564
原创 C++学习笔记之类基础
CPlusPlus 类基础节选于C++primer中文完美版(第三版),方便以后复习。目录:1. 怎样定义类类型以及怎样使用类对象。2. 隐含的this指针3. 静态类成员4. 指向类成员的指针1. 怎样定义类类型以及怎样使用类对象?类定义包含两部分:类头,由关键字class和类名组成;类体,由一对花括号包围起来,包含类的数据
2017-01-02 17:54:56
374
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅