C++
coloriy
这个作者很懒,什么都没留下…
展开
-
关于空类大小问题的总结
1、为何空类的大小不是0呢?为了确保两个不同对象的地址不同,必须如此。类的实例化是在内存中分配一块地址,每个实例在内存中都有独一无二的二地址。同样,空类也会实例化,所以编译器会给空类隐含的添加一个字节,这样空类实例化后就有独一无二的地址了。所以,空类的sizeof为1,而不是0.2、请看下面的类:class A{ virtual void f(){} };class B:pub转载 2015-08-19 13:22:01 · 672 阅读 · 0 评论 -
C++缓冲区的知识
下面介绍缓冲区的知识。一、什么是缓冲区缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。二、为什么要引入缓冲区我们为什么要引入缓冲区呢?比如我们从磁盘里取信息,我们先把读出的数转载 2015-08-19 13:25:47 · 703 阅读 · 0 评论 -
C++之动态绑定和静态绑定
为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误,需要理解四个名词:1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。2、对象的动态类型:目前所指对象的类型。是在运行期决定的。对象的动态类型可以更改,但是静态类型无法更改。关于对象的静态类型和动态类型,看一个示例:[C++] view转载 2015-08-19 13:29:26 · 421 阅读 · 0 评论 -
CPU的Cache
一. CacheCache一般来说,需要关心以下几个方面1)Cache hierarchyCache的层次,一般有L1, L2, L3 (L是level的意思)的cache。通常来说L1,L2是集成 在CPU里面的(可以称之为On-chip cache),而L3是放在CPU外面(可以称之为Off-chip cache)。当然这个不是绝对的,不同CPU的做法可能会不太一样。转载 2015-08-19 13:56:45 · 561 阅读 · 0 评论 -
静态类
静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时,静态数据成员还具有以下特点: 1.静态数据成员的定义。 静态数据成员实际上是类域中的全局变量。所以,静态数据成员的转载 2015-08-19 16:11:30 · 424 阅读 · 0 评论 -
关于 new(std::nothrow)
源码方面的信息就不详细讲述了,找找代码看看便知,简要说明下:new(std::nothrow)顾名思义,即不抛出异常,当new一个对象失败时,默认设置该对象为NULL,这样可以方便的通过if(p == NULL)来判断new操作是否成功普通的new操作,如果分配内存失败则会抛出异常,虽然后面一般也会写上if(p == NULL)但是实际上是自欺欺人,因为如果分配成功,p肯定不为NULL;而转载 2016-01-12 13:34:38 · 988 阅读 · 0 评论 -
Linux共享对象之编译参数fPIC
Linux共享对象之编译参数fPIC 最近在看Linux编程的基础知识,打算对一些比较有趣的知识做一些汇总备忘,本文围绕fPIC展开,学习参考见文末。 在Linux系统中,动态链接文件称为动态共享对象(DSO,Dynamic Shared Objects),简称共享对象,一般是以.so为扩展名的文件。在Windows系统中,则称为动态链接库(Dynamic Linking Li转载 2016-04-01 17:00:41 · 369 阅读 · 0 评论 -
关于-std=gnu++11的一篇文章
版权声明:本文为博主原创文章,未经博主允许不得转载。http://blog.csdn.net/csfreebird/article/details/11660781?utm_source=tuicool&utm_medium=referral今天打算在自己新的C++工程中启用C++11, 到时候了,该全面升级了。编译器是GCC4.8.1, 查看官方文档:http://g转载 2016-07-07 13:02:12 · 1828 阅读 · 0 评论