自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 【深度探索C++对象模型读书笔记】【第7章】站在对象模型的尖端

一、Template 1、classexpression templates将在编译时期而非执行时期被评估,因而带来重大的效率提升。 2、当编译器看到template class声明时,在实际程序中,什么反应也没有。templateclass中的任何member,只能通过templateclass的某个实例来操作。 template class Point{ public: enum S

2015-06-16 16:13:47 481

原创 【深度探索C++对象模型读书笔记】【第6章】执行期语意学

一、对象的构造和析构 1、如果一个区段或函数中有一个以上的离开点,destructor必须被放在每一个离开点之前。 2、一般而言object应尽可能放在使用它的那个程序区附近,这样做可以节省不必要的对象产生和销毁操作。 3、C++程序中所有的global objects都被放置在程序的data segment中。如果global object有constructor和destructor的话

2015-06-14 17:06:18 490

原创 【深度探索C++对象模型读书笔记】【第5章】构造、析构、拷贝语意学

1、 一般而言,class的data member应该被初始化,而且只在constructor中或其它member functions中初始化,其它任何操作都将破坏其封装性质,使其维护和修改更加困难。 2、 可以定义并调用一个pure virtualfunction,但它只能被静态调用,不能经由虚拟机制调用。 3、 class设计者一定得定义pure virtual destructor,因为

2015-06-12 13:01:09 716

原创 【深度探索C++对象模型读书笔记】【第2章】构造函数语意学

一、Default Construct的构造操作 1、 C++ Standard说:对于一个类,如果没有用户定义的构造函数,那么会有一个默认构造函数被隐式声明出来,但这个构造函数是trivial constructor(没啥用的)。 2、 以下4种情况编译器会合成nontrivial default construct: a)  带有default constructor的member cl

2015-06-10 10:01:57 650

原创 【leetcode】【单链表】【109】Convert Sorted List to Binary Search Tree

#include using namespace std; struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; struct TreeNode { int val; TreeNode *left; TreeNode *right;

2015-06-09 19:25:32 445

原创 c++对象内存布局

在c++中,有两种数据成员:static和nonstatic,三种成员函数:static、nonstatic和virtual。c++对象模型:nonstatic data members被置于类对象之内,而staticdata members被置于类对象之外。static和nonstaticfunction members被放在类对象之外。virtual函数则由如下步骤支持: 1)每个cla

2015-06-08 09:46:02 1151

原创 c++虚函数表

C++中的虚函数(Virtual Function)的实现通过一张虚函数表来实现的,简称为V-Table。在这个表中,主要是一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其真实反应实际的函数。这样,在有虚函数的类的实例中分配了指向这个表的指针的内存,所以,当用父类的指针来操作一个子类的时候,这张虚函数表就显得尤为重要了,它就像一个地图一样,指明了实际所应该调用的函数。 编译器应该是保

2015-06-07 09:57:59 483

原创 【深度探索C++对象模型读书笔记】【第4章】Function语意学

1、 C++支持三种类型的member functions,static、nonstatic和virtual,每一种类型被调用的方式都不相同。 2、C++的设计准则之一便是nonstatic member function至少必须和一般的nonmember function有相同的效率。编译器内部会将member函数实例转换为对等的nonmember函数实例,转换步骤为: a)  改写函数

2015-06-06 13:39:23 492

原创 【深度探索C++对象模型读书笔记】【第3章】Data语意学

1、例子,用VS 2013编译器 #include using namespace std; class X{}; class Y :public virtual X{}; class Z :public virtual X{}; class A :public Y, public Z{}; int main(){ cout << sizeof(X) << endl;// 1 cout

2015-06-04 09:35:03 677

原创 【leetcode】【单链表】【25】Reverse Nodes in k-Group

#include #include #include using namespace std; struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; class Solution { public: pair reverseList(ListNode* head) {

2015-06-03 19:24:52 275

原创 【深度探索C++对象模型读书笔记】【第1章】关于对象

1、  C++在布局和存取时间上的主要的额外负担是由virtual引起的,包括: 1)virtualfunction机制,用以支持一个有效率的“执行期绑定” 2)virtualbase class,用以实现“多次出现在继承体系中的baseclass,有一个单一而被共享的实例”; 3)多重继承下的额外负担,发生在“一个派生类和其第二个或后继之基类的转换”之间。 2、   在c++中,有两种数

2015-06-02 10:32:52 527

DOS教程.rar

DOS命令,教你怎么使用dos命令。在汇编中要学到,所以就上传了,方便大家学习

2012-09-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除