c++
文章平均质量分 76
zhaopengnju
这个作者很懒,什么都没留下…
展开
-
C++对象内存分布(包括字节对齐和虚函数表)
1、C++对象的内存分布和虚函数表: http://blog.sina.com.cn/s/blog_60e96a410100lirk.html,注意,对象中保存的是虚函数表指针,而不是虚函数表,虚函数表在编译阶段就已经生成,同类的不同对象中的虚函数指针指向同一个虚函数表,不同类对象的虚函数指针指向不同虚函数表。2、何时进行动态绑定: (1)每个类对象在被构造时不原创 2016-06-02 22:32:57 · 2183 阅读 · 0 评论 -
一个sample学会使用c++比较函数对象和hash函数对象
/*1、自定义hash函数对象用于unordered_set中2、自定义Compare函数对象用于排序3、学习使用优先级队列priority_queue*/#include #include #include #include #include using namespace std;//已知0 <= x, y < 100class point{public:原创 2016-07-13 23:27:14 · 1091 阅读 · 0 评论 -
c++重载、覆盖、隐藏
重载(overload)是指函数不同的参数列表,对同名函数的名称做修饰,然后这些同名函数就成了不同的函数。在同一可访问域内(注意同一访问域,基类和派生类不属于同一访问域)被声明的几个具有不同参数列表(参数类型、个数、顺序)的同名函数,程序会根据不同的参数列来确定具体调用哪个函数。对于重载函数的调用,在编译期间就已经确定,是静态的,它们的地址在编译期间就绑定好了,与多态无关。注意,重载不关心函数的返转载 2016-07-27 21:20:47 · 304 阅读 · 0 评论 -
指针大小由什么决定
首先,介绍几个基本概念:(主要摘自百度百科)字长:在同一时间中处理二进制数的位数叫字长(CPU处理能力)。通常称处理字长为8位数据的CPU叫8位CPU,32位CPU就是在同一时间内处理字长为32位的二进制数据。二进制的每一个0或1是组成二进制的最小单位,称为一个比特(bit)。 一般说来,计算机在同一时间内处理的一组二进制数称为一个计算机的“字”,而这组二进制数的位数就是“字长转载 2016-07-27 21:14:36 · 672 阅读 · 0 评论 -
new与operator new
c++中有两种new,一种是new操作符另一种是operator new。new操作符是c++语言级别支持的,类似于sizeof操作符,它会做两件事:分配足够的内存以容纳对象,然后调用构造函数初始化上一步所分配的内存。operator new就是new操作符进行第一步操作调用的函数,它只为对象分配原始内存,类似于malloc。下面详细介绍operator new函数:(1)void* op转载 2016-06-02 23:13:47 · 454 阅读 · 0 评论 -
c++POD 简介
啥是POD类型?POD全称Plain Old Data。通俗的讲,一个类或结构体通过二进制拷贝后还能保持其数据不变,那么它就是一个POD类型。平凡的定义1.有平凡的构造函数2.有平凡的拷贝构造函数3.有平凡的移动构造函数4.有平凡的拷贝赋值运算符5.有平凡的移动赋值运算符6.有平凡的析构函数7.不能包含虚函数8.不能包含虚基类#include转载 2016-08-01 12:48:24 · 1393 阅读 · 0 评论