06 2015 档案

【深度探索C++对象模型读书笔记】【第7章】站在对象模型的尖端
摘要:一、Template1、class expression templates将在编译时期而非执行时期被评估,因而带来重大的效率提升。2、当编译器看到template class声明时,在实际程序中,什么反应也没有。template class中的任何member,只能通过template class... 阅读全文

posted @ 2015-06-16 16:13 ruan875417 阅读(155) 评论(0) 推荐(0) 编辑

【深度探索C++对象模型读书笔记】【第6章】执行期语意学
摘要:一、对象的构造和析构1、如果一个区段或函数中有一个以上的离开点,destructor必须被放在每一个离开点之前。2、一般而言object应尽可能放在使用它的那个程序区附近,这样做可以节省不必要的对象产生和销毁操作。3、C++程序中所有的global objects都被放置在程序的data segme... 阅读全文

posted @ 2015-06-14 17:06 ruan875417 阅读(151) 评论(0) 推荐(0) 编辑

【深度探索C++对象模型读书笔记】【第5章】构造、析构、拷贝语意学
摘要:1、 一般而言,class的data member应该被初始化,而且只在constructor中或其它member functions中初始化,其它任何操作都将破坏其封装性质,使其维护和修改更加困难。2、 可以定义并调用一个pure virtualfunction,但它只能被静态调用,不能经由虚拟机... 阅读全文

posted @ 2015-06-12 13:01 ruan875417 阅读(127) 评论(0) 推荐(0) 编辑

【深度探索C++对象模型读书笔记】【第2章】构造函数语意学
摘要:一、Default Construct的构造操作1、C++ Standard说:对于一个类,如果没有用户定义的构造函数,那么会有一个默认构造函数被隐式声明出来,但这个构造函数是trivial constructor(没啥用的)。2、以下4种情况编译器会合成nontrivial default con... 阅读全文

posted @ 2015-06-10 10:01 ruan875417 阅读(134) 评论(0) 推荐(0) 编辑

【leetcode】【单链表】【109】Convert Sorted List to Binary Search Tree
摘要:#includeusing namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} };struct TreeNode { int val;... 阅读全文

posted @ 2015-06-09 19:25 ruan875417 阅读(100) 评论(0) 推荐(0) 编辑

c++对象内存布局
摘要:在c++中,有两种数据成员:static和nonstatic,三种成员函数:static、nonstatic和virtual。c++对象模型:nonstatic data members被置于类对象之内,而staticdata members被置于类对象之外。static和nonstaticfunc... 阅读全文

posted @ 2015-06-08 09:46 ruan875417 阅读(295) 评论(0) 推荐(0) 编辑

c++虚函数表
摘要:C++中的虚函数(Virtual Function)的实现通过一张虚函数表来实现的,简称为V-Table。在这个表中,主要是一个类的虚函数的地址表,这张表解决了继承、覆盖的问题,保证其真实反应实际的函数。这样,在有虚函数的类的实例中分配了指向这个表的指针的内存,所以,当用父类的指针来操作一个子类的时... 阅读全文

posted @ 2015-06-07 09:57 ruan875417 阅读(165) 评论(0) 推荐(0) 编辑

【深度探索C++对象模型读书笔记】【第4章】Function语意学
摘要:1、 C++支持三种类型的member functions,static、nonstatic和virtual,每一种类型被调用的方式都不相同。2、C++的设计准则之一便是nonstatic member function至少必须和一般的nonmember function有相同的效率。编译器内部会将... 阅读全文

posted @ 2015-06-06 13:39 ruan875417 阅读(137) 评论(0) 推荐(0) 编辑

【深度探索C++对象模型读书笔记】【第3章】Data语意学
摘要:1、例子,用VS 2013编译器#includeusing namespace std;class X{};class Y :public virtual X{};class Z :public virtual X{};class A :public Y, public Z{};int main()... 阅读全文

posted @ 2015-06-04 09:35 ruan875417 阅读(208) 评论(0) 推荐(0) 编辑

【leetcode】【单链表】【25】Reverse Nodes in k-Group
摘要:#include#include#includeusing namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public... 阅读全文

posted @ 2015-06-03 19:24 ruan875417 阅读(122) 评论(0) 推荐(0) 编辑

【深度探索C++对象模型读书笔记】【第1章】关于对象
摘要:1、 C++在布局和存取时间上的主要的额外负担是由virtual引起的,包括:1)virtualfunction机制,用以支持一个有效率的“执行期绑定”2)virtualbase class,用以实现“多次出现在继承体系中的baseclass,有一个单一而被共享的实例”;3)多重继承下的额外负担,发... 阅读全文

posted @ 2015-06-02 10:32 ruan875417 阅读(159) 评论(0) 推荐(0) 编辑

导航

点击右上角即可分享
微信分享提示