c++
文章平均质量分 81
ifeimao
这个作者很懒,什么都没留下…
展开
-
对象内存布局 (10)
转自http://blog.csdn.net/pathuang68/article/details/4103627 在对象内存布局 (9)基础上做些修改:派生类override基类的虚函数,即Base2 override Base1中声明的虚函数vfBase1(),Base3 override Base1中声明的虚函数vfBase1()和Base2中声明的虚函数vfBase2转载 2014-12-19 22:23:12 · 250 阅读 · 0 评论 -
对象内存布局 (2)
转自http://blog.csdn.net/pathuang68/article/details/4101977 内容概要: 满足下面2个条件时, 1. 父类有虚函数,子类也有虚函数,但子类并没有重写或覆盖父类的虚函数 2. 非虚继承 类对象之内存布局 续前篇:http://blog.csdn.net/pathuang68/archive转载 2014-12-19 22:14:51 · 278 阅读 · 0 评论 -
对象内存布局 (9)
转自http://blog.csdn.net/pathuang68/article/details/4103581 假定多层继承的各类之间的关系如下图。假定派生类不override基类的虚函数,即Base2不override Base1中声明的虚函数vfBase1(),Base3不override Base2中声明的虚函数vfBase2(),Derived不override Ba转载 2014-12-19 22:22:28 · 373 阅读 · 0 评论 -
对象内存布局 (16)
转自http://blog.csdn.net/pathuang68/article/details/4105922 下面讨论虚基类和虚函数同时存在的时候,对对象内存布局的影响。 假定各个类之间的关系如下图: Base中声明了一个虚函数vfBase()和一个整形成员变量; Derived1 override了Base中声明的虚函数vfBase(),声明转载 2014-12-19 22:30:06 · 315 阅读 · 0 评论 -
对象内存布局 (11)
转自http://blog.csdn.net/pathuang68/article/details/4105608 在C++中,一个类实例化得到的结果就是一个对象。一个类包含成员变量和成员函数,其中成员变量又分为nonstatic成员变量和static成员变量;成员函数又可以分为nonstatic成员函数、static成员函数以及virtual成员函数。一个对象包含可能存在的vf转载 2014-12-19 22:24:19 · 411 阅读 · 0 评论 -
对象内存布局 (1)
转自http://blog.csdn.net/pathuang68/article/details/4101970 内容概要: 满足下面2个条件时, 1. 父类有虚函数,子类无虚函数(即无虚函数重写或无虚函数覆盖) 2. 非虚继承 类对象之内存布局 前述相关内容参考: 1. http://blog.csdn.net/pathuang6转载 2014-12-19 22:13:32 · 283 阅读 · 0 评论 -
do...while(0)的妙用
转自:http://www.cnblogs.com/flying_bat/archive/2008/01/18/1044693.html 在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。 但是,最近在读我们项目的代码时,却发现了do...while的一转载 2014-12-21 21:16:28 · 306 阅读 · 0 评论 -
c++11 Lambda test
#include #include #include #include using namespace std; // from http://www.cnblogs.com/hujian/archive/2012/02/14/2350306.html // g++ testLambda.cpp -o testLambda -std=c++11 class CTest原创 2014-12-22 11:31:20 · 410 阅读 · 0 评论 -
c++深拷贝和浅拷贝
from http://blog.csdn.net/jackystudio/article/details/11553117 1.普通类型对象的拷贝 普通类型对象的拷贝很简单,就是值的复制而已。比如: [cpp] view plaincopy int _tmain(int argc, _TCHAR* argv[]) { int转载 2014-12-22 20:23:21 · 521 阅读 · 0 评论 -
std::nothrow
from http://en.cppreference.com/w/cpp/memory/new/nothrow #include #include int main() { try { while (true) { new int[100000000ul]; // throwing overload转载 2014-12-23 21:19:05 · 322 阅读 · 0 评论 -
对象内存布局 (13)
转自http://blog.csdn.net/pathuang68/article/details/4105810 下面来看看虚基类对对象内存布局的影响。虚基类的主要作用就是在所有的派生类中,保留且仅保留一份虚基类的suboject。 a. 一个虚基类的情况 #include using namespace std; class Ba转载 2014-12-19 22:27:12 · 376 阅读 · 0 评论 -
对象内存布局 (7)
转自http://blog.csdn.net/pathuang68/article/details/4102003 在对象内存布局 (5)的代码中,在Derived类中覆盖Base1中声明的vfBase1_1(),其他代码不变。修改后的Derived的定义如下: class Derived : public Base1, public Base2, public Base3转载 2014-12-19 22:20:33 · 315 阅读 · 0 评论 -
C++ 虚函数表解析
转自http://blog.csdn.net/haoel/article/details/1948051 C++ 虚函数表解析 陈皓 http://blog.csdn.net/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父转载 2014-12-19 20:46:38 · 325 阅读 · 0 评论 -
对象内存布局 (12)
转自http://blog.csdn.net/pathuang68/article/details/4105626 注意:关于内存对齐(memory alignment),请看关于内存对齐问题,后面将会用到。 下面我们进行在普通继承(即非虚继承)时,派生类的指针转换到基类指针的情形研究。假定各类之间的关系如下图: 代码如下: #incl转载 2014-12-19 22:25:11 · 317 阅读 · 0 评论 -
对象内存布局 (15)
转自http://blog.csdn.net/pathuang68/article/details/4105902 和对象内存布局 (14)差不多,只是改动了两个继承关系。几个类的继承关系如下图,这种继承方式不是很有实际意义,在此纯粹是探究类的memory layout。 代码如下: #include using namespace转载 2014-12-19 22:29:12 · 330 阅读 · 0 评论 -
对象内存布局 (8)
转自http://blog.csdn.net/pathuang68/article/details/4102006 在内存对象布局 (5)的代码中,在Derived类中将三个基类中的虚函数分别覆盖一个,即分别覆盖Base1中声明的vfBase1_1(),Base2中声明的vfBase2_1()以及Base3中声明的vfBase3_1()。保持其他代码不变,修改后的Derive转载 2014-12-19 22:21:29 · 354 阅读 · 0 评论 -
对象内存布局 (4)
转自http://blog.csdn.net/pathuang68/article/details/4101981 内容概要: 满足下面2个条件时, 1. 父类有虚函数,子类也有虚函数,且子类的虚函数重写或覆盖了父类的虚函数 2. 非虚继承 类对象之内存布局 前篇:http://blog.csdn.net/pathuang68/archiv转载 2014-12-19 22:17:13 · 313 阅读 · 0 评论 -
对象内存布局 (14)
转自http://blog.csdn.net/pathuang68/article/details/4105851 继续探讨虚基类对对象内存布局的影响。几个类的继承关系如下图,这是虚基类最为常见的用法之一: 代码如下: #include using namespace std; class Base { publi转载 2014-12-19 22:28:17 · 324 阅读 · 0 评论 -
对象内存布局 (6)
转自http://blog.csdn.net/pathuang68/article/details/4102002 如果在对象内存布局 (5)的代码中,将Base1中的两个虚函数声明删除,同时将main函数中的下面代码注释掉(因为现在只有两张虚函数表了): cout i = 0; tmp = ((int*)&转载 2014-12-19 22:18:52 · 400 阅读 · 0 评论 -
对象内存布局 (5)
转自http://blog.csdn.net/pathuang68/article/details/4101999 内容概要: 满足下面3个条件时, 1. 父类有虚函数,子类也有虚函数,且子类的虚函数重写或覆盖了父类的虚函数 2. 非虚继承 3. 多重继承 类对象之内存布局 前篇: http://blog.csdn.net/pathu转载 2014-12-19 22:17:49 · 263 阅读 · 0 评论 -
对象内存布局 (3)
转自http://blog.csdn.net/pathuang68/article/details/4101979 内容概要: 满足下面2个条件时, 1. 父类无虚函数,子类有虚函数 2. 非虚继承 类对象之内存布局 前篇:http://blog.csdn.net/pathuang68/archive/2009/04/23/4101977.转载 2014-12-19 22:16:01 · 277 阅读 · 0 评论 -
C++中的回调函数
from http://www.cnblogs.com/chenyuming507950417/archive/2012/01/02/2310114.html 今天讨论下C/C++中的回调函数。 在理解“回调函数”之前,首先讨论下函数指针的概念。 函数指针 (1)概念:指针是一个变量,是用来指向内存地址的。一个程序运行时,所有和运行相关的物件都是需要加载到内存中,这就转载 2014-12-23 22:52:26 · 314 阅读 · 0 评论