
C++
文章平均质量分 86
KangRoger
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++中的左值和右值
左值和右值的区别,以及C++11中对左值符号&和右值符号&&、std::move。原创 2014-10-14 10:36:55 · 12019 阅读 · 5 评论 -
含有虚函数类的对象在内存中的结构
含有虚函数或基类含有虚函数的类,其对象在内存中的布局。原创 2014-07-31 10:27:37 · 2385 阅读 · 0 评论 -
基类和派生类的虚函数表
查看派生类是否和基类公用一个虚函数表,或是否使用相同的虚函数(没有重新实现的情况下)。原创 2014-07-31 10:50:37 · 6477 阅读 · 1 评论 -
C++优化内存分配
C++中的底层内存分配,对象构造与析构。原创 2014-08-09 16:41:41 · 4072 阅读 · 1 评论 -
多继承(虚继承)派生类对象内存结构
虚继承派生类对象的内存布局。菱形继承到底是怎么共享虚基类对象的,这里有详细讲解和代码测试。原创 2014-09-09 21:41:52 · 2132 阅读 · 0 评论 -
C++内存泄露和检测
C++中的内存泄露的原因和内存泄露的检测方法。原创 2014-09-16 16:37:42 · 18299 阅读 · 3 评论 -
C/C++中volatile关键字
1. volatile关键字C/C++ 中的 volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的 memory barrier。这是 BS 在 "The C++ Programming Language" 对 volatile 修饰词的说明:A volatile specifier is a hint to a compiler that an ob转载 2014-08-08 08:13:18 · 1246 阅读 · 0 评论 -
C++11简介(1)
简要介绍C++11的几个特性,从codeproject翻译的,翻译的不是很准确。这是第一篇。翻译 2014-08-07 11:13:51 · 2345 阅读 · 0 评论 -
多继承(非虚继承)派生类对象内存结构(基类有虚函数)
在多继承中(非虚继承),探索一下派生类对象在内存中怎么分布的。原创 2014-08-01 08:18:51 · 2506 阅读 · 0 评论 -
初始化数组/容器时,调用默认构造函数还是复制构造函数
数组/容器初始化大小后,对象的构建过程。是调用默认构造函数还是调用复制构造函数。原创 2014-10-27 10:45:35 · 3145 阅读 · 0 评论 -
do{}while(0)在宏定义中作用
在宏定义中,为什么使用do{}while(0)?原创 2014-11-20 20:03:26 · 2188 阅读 · 0 评论 -
C++类的继承
在C++的继承中,类的继承分为三种,Public,Protected,Private。Protected是Public和Private的混合,1在类的访问方面,Protected和Private一样,都是不能被类的用户访问,2在继承方面,像Public,protected成员可以被派生类成员访问。基类中的函数有虚函数(vritual)和非虚函数。对于非虚函数的调用,无论对象是什么类型,原创 2014-03-03 21:19:27 · 1549 阅读 · 0 评论 -
C++中的字符串流
字符串流stream,用来做数据类型转换;和C以及C++11实现对比。原创 2017-05-25 22:23:49 · 3505 阅读 · 1 评论 -
C++中的动态二维数组
在C++中不能使用动态二维数组,原创 2014-07-14 22:26:53 · 6960 阅读 · 3 评论 -
POCO安装并测试
POCO是C++实现的包含网络的,可以集成到应用的开源库。官网地址为:http://pocoproject.org。安装我下载的是“poco-1.7.3-all.tar.gz”,解压后,先配置,我已经安装openssl,不安装Data模块./configure --omit=Data/ODBC,Data/MySQLmakemake install动态链接库默认安装在’/usr/local/lib原创 2016-05-28 20:34:32 · 7696 阅读 · 0 评论 -
汇编语言---函数调用栈
转自:http://bdxnote.blog.163.com/blog/static/8444235201063083331797/当发生函数调用的时候,栈空间中存放的数据是这样的:1、调用者函数把被调函数所需要的参数按照与被调函数的形参顺序相反的顺序压入栈中,即:从右向左依次把被调函数所需要的参数压入栈;2、调用者函数使用call指令调用被调函数,并把call指令的下一条指令的地转载 2014-06-06 09:23:30 · 3006 阅读 · 0 评论 -
二叉树的线索化
当二叉树使用链表表示时,用左右两个孩子指针可以找到左右孩子信息。我们可以用先序、中序、后序遍历二叉树,不同的遍历得到不同排列顺序的结点信息。只有在遍历的过程中才能得到某一结点的前驱与后继结点。在n个结点的二叉树中,有2n个指针域,根节点不用指针域,其他(n-1)个结点只用了(n-1)个指针域,还有(n+1)个指针域空着没用,我们可以利用者空着的指针域来记录某种遍历下结点的前驱与后继。为了区分某原创 2014-08-08 10:04:39 · 2841 阅读 · 0 评论 -
vector动态二维数组(容器的容器)占用内存分析
用vector创建二维动态数组,也就是用容器的容器来创建,分析它是怎么使用内存的。原创 2014-08-18 21:21:54 · 18054 阅读 · 1 评论 -
C++关键字static
1、static可以把变量和函数限定在本文件中用static修饰的变量或者函数,只能在本文件中有效,不能在其他文件中使用。例如一个文件file.cpp中定义变量int test=10;在main.cpp中使用它,那么可以使用关键字extern#includeint main(){ extern int test; std::cout<<test<<std::endl原创 2014-03-04 19:58:39 · 1186 阅读 · 0 评论 -
二叉树的递归遍历(先序、中序、后序)
二叉树是常用的数据结构,一个变形就是二叉查找树。二叉树有点像堆,如果二叉树是满二叉树,可以像堆一样用数组表示,否则就很浪费内存。二叉树常用链式表示原创 2014-08-06 10:44:34 · 1809 阅读 · 0 评论 -
C++容器类
什么是容器首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。很简单,容器就是保存其它对象的对象,当然这是一个朴素的理解,这种“对象”还包含了一系列处理“其它对象”的方法,因为这些方法在程序的设计上会经常被用到,所以容器也体现了一个好处,就是“容器类是一种对特定代码重用问题的良好的解决方案”。转载 2014-07-13 09:56:32 · 1635 阅读 · 0 评论 -
C语言str函数系列
常常见到面试时让写str系列函数,用的少,经常忘记,原创 2014-05-05 21:18:17 · 72937 阅读 · 4 评论 -
C++运算符重载
在C++中,操作符默认只是对内置类型进行操作,对于用户原创 2014-04-25 10:20:10 · 1074 阅读 · 0 评论 -
const char*, char const*, char*const的区别
const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目。 这个知识易混点之前是看过了,今天做Linux上写GTK程序时又出现个Warning,发散一下又想到这个问题,于是翻起来重嚼一下。事实上这个概念谁都有只是三种声明方式非常相似:Bjarne在他的The C++ Programming Language里面给出过一个助转载 2014-04-24 09:43:54 · 1010 阅读 · 0 评论 -
符号扩展
来看一道笔试题目:原创 2014-04-09 09:34:23 · 3678 阅读 · 0 评论 -
函数重载
函数重载是指:在同一个作用域内,具有相同名字,而原创 2014-05-01 09:46:20 · 1096 阅读 · 0 评论 -
Memberwise copy(深拷贝)与Bitwise copy(浅拷贝)的区别
转自:http://blog.youkuaiyun.com/sghcpt/article/details/5578320又加了一些自己补充。转载 2014-04-16 09:10:51 · 3359 阅读 · 0 评论 -
sizeof(数组名)和sizeof(指针)
在做这道题时:32位环境下,int *p=new int[10];请问sizeof(p)的值为()A、4 B、10 C、40 D、8我以为正确答案为C,int类型为32位,占四个字节,10个自然就是40了,结果正确答案为A,只是指针p占的空间。因此写段代码测试一下:#includeusing原创 2014-03-06 21:24:08 · 149316 阅读 · 13 评论 -
华为2014年校园招聘机试——字符串过滤、压缩
题目如下:通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。压缩规则: 1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。 2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz原创 2014-03-06 20:39:52 · 2737 阅读 · 2 评论 -
谈一谈默认构造函数
最近在看《深入探索C++对象模型原创 2014-04-27 11:06:53 · 2641 阅读 · 0 评论 -
指向函数的指针
和变量一样,函数也有指针。指向函数的指针叫做原创 2014-06-06 09:12:53 · 889 阅读 · 0 评论 -
默认构造函数、构造函数、复制构造函数和赋值操作符
1默认构造函数当一个类没有任何构造函数时,编译器将会合成一个默认构造函数。那么编译器合成的默认构造函数是做什么用的呢?是初始化类的成员变量吗?事实上不是。编译器合成的默认构造函数只是满足编译器的需要,而不是按照程序员想的去做。编译器合成的默认构造函数初始化的成员变量包括两类。1、内置类型。如果内置类型变量作用域为全局作用域或者为静态局部变量,那么将初始化为0。为局部作用域的内置原创 2014-05-25 21:18:01 · 3783 阅读 · 0 评论 -
虚函数能否是内联函数
内联函数是在编译时,将调用函数处插入内联函数的代码,省去了函数调用时的开销。虚函数是通过指针或引用调用函数时,通过虚函数表来确定调用的函数,在运行时确定。那么虚函数是否可以是内联函数?以前没有想过这个问题,表面上看,虚函数不能为内联函数。我们在类中定义的函数都是内联函数,析构函数经常在类中定义,而析构函数又经常声明为虚函数,以前没有发现什么问题。其实虚函数可以为内联函数,这与内联函原创 2014-08-04 14:17:18 · 3184 阅读 · 1 评论 -
C++中的智能指针
当设计含有指针的类时,应特别原创 2014-05-22 21:04:07 · 1650 阅读 · 0 评论 -
《C++沉思录》读书笔记之代理类
#include#includeint main(){ int i; for( i=0;i<2;i++){ fork(); printf("-\n"); } return 0;}输出:6个“-"#include#includeint原创 2014-06-11 21:00:00 · 1471 阅读 · 0 评论 -
句柄类中计数器的分离
句柄类是管理基类指针的类,“智能指针”的类其实就是句柄类。智能指针都有一个对应的计数器,这个计数器可以在智能指针指向的对象中,在“C++中的智能指针”中就是这样的;也可以在句柄类中。这两种有一些区别。当计数器在智能指针对象的内部时,我们需要在类的外层加一层包装,之前用Ptr类,但是为了用计数器,在类Ptr外层包装了U_Ptr类。如下图:其实还可以计数器和指针对象的分离,把计数器放到原创 2014-07-22 09:57:40 · 1107 阅读 · 0 评论 -
单向链表之C++实现
单向链表是常用的数据结构,之前只是看过,没有自己动手实现过,现在来原创 2014-07-01 21:20:40 · 9870 阅读 · 0 评论 -
C++ Virtual详解
Virtual是C++ OO机制中很重要的一个关键字。只要是学过C++的人都知道在类Base中加了Virtual关键字的函数就是虚拟函数(例如函数print),于是在Base的派生类Derived中就可以通过重写虚拟函数来实现对基类虚拟函数的覆盖。当基类Base的指针point指向派生类Derived的对象时,对point的print函数的调用实际上是调用了Derived的print函数而不是Ba转载 2013-12-03 16:02:36 · 1209 阅读 · 0 评论