随笔分类 -  C++

上一页 1 ··· 3 4 5 6 7

malloc的内存分配原理
摘要:0 堆内存的在计算机内存中的形式 根据《The C Programming language》推测得到堆内存,图中的Heap区域即为堆内存块(Heap区域的数目不代表计算机堆内存的真实数目)。 [1] 堆内存不连续。只有标识为Heap的才是堆内存。 [2] 在malloc()/free()看来,每个 阅读全文

posted @ 2018-02-23 09:18 AlanTu 阅读(13010) 评论(1) 推荐(2) 编辑

if else和switch的效率
摘要:switch和if-else相比,由于使用了Binary Tree算法,绝大部分情况下switch会快一点,除非是if-else的第一个条件就为true. 说实话 我也没有深入研究过这个问题的根源 只是在实际开发中 没有人会去用很多很多else if的 都是用 switch case 的 后者比较清 阅读全文

posted @ 2018-02-23 09:15 AlanTu 阅读(796) 评论(0) 推荐(0) 编辑

关于结构体占用空间大小总结
摘要:关于C/C++中结构体变量占用内存大小的问题,之前一直以为把这个问题搞清楚了,今天看到一道题,发现之前的想法完全是错误的。这道题是这样的: 在32位机器上,下面的代码中 class A { public: int i; union U { char buff[13]; int i; }u; void 阅读全文

posted @ 2018-02-23 08:56 AlanTu 阅读(14211) 评论(0) 推荐(1) 编辑

c++拷贝构造函数详解
摘要:一、什么是拷贝构造函数 首先对于普通类型的对象来说,它们之间的复制是很简单的,例如: int a=100; int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。 下面看一个类对象拷贝的简单例子。 #include<iostream> using namespace 阅读全文

posted @ 2018-02-22 16:14 AlanTu 阅读(168906) 评论(10) 推荐(25) 编辑

C++构造函数
摘要:构造函数 每个类分别定义了它的对象被初始化的方式,类通过一个或几个特殊的成员函数来控制其对象的初始化过程,这些函数叫做构造函数。构造函数的任务是初始化类对象的数据成员,无论何时只要类的对象被创建,就会执行构造函数。 构造函数的名字和类名相同。和其他函数不一样的是,构造函数没有返回类型;除此之外类似于 阅读全文

posted @ 2018-02-22 15:59 AlanTu 阅读(629) 评论(0) 推荐(0) 编辑

复制构造函数与赋值函数
摘要:构造函数、析构函数、赋值函数是每个类最基本的的函数。每个类只有一个析构函数和一个赋值函数。但是有很多构造函数(一个为复制构造函数,其他为普通构造函数。对于一个类A,如果不编写上述四个函数,c++编译器将自动为A产生四个默认的函数,即: A(void) //默认无参数构造函数 A(const A &a 阅读全文

posted @ 2018-02-22 15:55 AlanTu 阅读(2173) 评论(0) 推荐(0) 编辑

C++ 虚函数表浅析
摘要:一、背景知识(一些基本概念) 虚函数(Virtual Function):在基类中声明为 virtual 并在一个或多个派生类中被重新定义的成员函数。 纯虚函数(Pure Virtual Function):基类中没有实现体的虚函数称为纯虚函数(有纯虚函数的基类称为虚基类)。 C++ “虚函数”的存 阅读全文

posted @ 2018-02-13 16:07 AlanTu 阅读(262) 评论(0) 推荐(0) 编辑

C++虚函数工作原理
摘要:一、虚函数的工作原理 虚函数的实现要求对象携带额外的信息,这些信息用于在运行时确定该对象应该调用哪一个虚函数。典型情况下,这一信息具有一种被称为 vptr(virtual table pointer,虚函数表指针)的指针的形式。vptr 指向一个被称为 vtbl(virtual table,虚函数表 阅读全文

posted @ 2018-02-13 16:05 AlanTu 阅读(624) 评论(0) 推荐(0) 编辑

上一页 1 ··· 3 4 5 6 7

导航