c++
一叶知秋dong
好记性不如烂笔头,记录学习和工作中的一些东东。
展开
-
C++的 =default 和 =delete
编译器默认为一个类生成以下默认函数:默认构造函数默认析构函数默认拷贝构造函数默认赋值函数移动构造函数移动拷贝函数class DataOnly {public: DataOnly () // default constructor ~DataOnly () // destructor Dat...转载 2019-10-31 20:26:25 · 267 阅读 · 2 评论 -
C++ 对象内存布局详解
阅读目录0.前言 1.何为C++对象模型? 2.文章内容简介 3.理解虚函数表 3.1.多态与虚表 3.2.使用指针访问虚表 4.对象模型概述 4.1.简单对象模型 4.2.表格驱动模型 4.3.非继承下的C++对象模型 5.继承下的C++对象模型 5.1.单继承 5.2.多继承 6.虚继承 6.1.虚基类表解析 6.2.简单虚继承 6....转载 2019-10-29 11:22:50 · 215 阅读 · 0 评论 -
C++类对象的内存布局
1、C++类对象的内存布局 在C++的类对象中,有两种类的成员变量:static和非static,有三种成员函数:static、非static和virtual。那么,它们在C++的内存中是如何分布的呢? C++程序的内存格局通常分为四个区:全局数据区(data area),代码区(code area),栈区(stack area),堆区(heap area)(即自由存储区...原创 2019-10-29 10:17:50 · 7251 阅读 · 2 评论 -
C++ RTTI及“反射”技术
RTTI(Run-Time Type Information)运行时类型检查的英文缩写,它提供了运行时确定对象类型的方法。面向对象的编程语言,象C++,Java,delphi都提供了对RTTI的支持。 本文将简略介绍 RTTI 的一些背景知识、描述 RTTI 的概念,并通过具体例子和代码介绍什么时候使用以及如何使用 RTTI;本文还将详细描述两个重要的 RTTI 运算符的使用方法,它们是 type...转载 2019-10-29 10:01:19 · 561 阅读 · 0 评论 -
c++ 封闭类
一个类的成员变量如果是另一个类的对象,就称之为“成员对象”。包含成员对象的类叫封闭类(enclosed class)。封闭类构造函数的初始化列表当封闭类的对象生成并初始化时,它包含的成员对象也需要被初始化,这就会引发成员对象构造函数的调用。如何让编译器知道,成员对象到底是用哪个构造函数初始化的呢?这可以通过在定义封闭类的构造函数时,添加初始化列表的方式解决。在构造函数中添加初始化列表的写...原创 2019-10-20 17:06:41 · 2639 阅读 · 2 评论