随笔分类 - c++ 基础知识
摘要:析构函数定义为虚函数原因先看下面一段程序:#include using namespace std;class Person{public:virtual~Person()//加了virtual,讲析构函数声明为虚函数{ cout << "Person::~Person()" << endl;}};...
阅读全文
摘要:i++是否原子操作 不是原子操作。理由:1.i++分为三个阶段:内存到寄存器寄存器自增回内存这三个阶段中间都可以被中断分离开.2.++i首先要看编译器是怎么编译的,某些编译器比如VC在非优化版本中会编译为以下汇编代码:__asm{ moveax,dword ptr[i] inc eax movd...
阅读全文
摘要:引用和指针的比较引用是C++中的概念,初学者容易把二者混淆。例1: int m; int &n = m; 在这里,n相当于是m的别名,对n的任何操作就是对m的操作。n既不是m的拷贝,也不是指向m的指针,其实n就是m它自己。例2: int i = 0; int j = 5; int &k = i; k...
阅读全文
摘要:AVL树参考了:http://www.cppblog.com/cxiaojia/archive/2012/08/20/187776.html修改了其中的错误,代码实现并亲自验证过。 平衡二叉树(Balanced Binary Tree)是二叉查找树的一个进化体,也是第一个引入平衡概念的二叉树。19...
阅读全文
摘要:关于const和define的内存分配问题const与#define宏定义的区别----C语言深度剖析1, const定义的只读变量在程序运行过程中只有一份拷贝(因为它是全局的只读变量,存放在静态区),而#define定义的宏常量在内存中有若干个拷贝。2, #define宏是在预编译阶段进行替换,而...
阅读全文
摘要:一、定义:RTTI:Run Time Type Identification ,运行时类型识别:指程序能够使用基类的指针或引用来检索其所指对象的实际派生类型。二、使用方式:C++中有两个操作符提供RTTI:(1)typeid 操作符:返回指针或引用所指对象的实际类型。(2)dynamic_cast ...
阅读全文
摘要:转自陈皓专栏:http://blog.csdn.net/haoel/article/details/1948051C++ 虚函数表解析陈皓http://blog.csdn.net/haoel前言C++中 的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然...
阅读全文
摘要:const用法1,定义全局变量的内存分配问题#define Pi_1 3.14 //使用#define宏const double Pi_2 = 3.14 //使用const,这时候Pi并没有放入内存中double a = Pi_2; //这时候才为Pi分配内存,不过后面再有这样的定义也不会再分配内存...
阅读全文

浙公网安备 33010602011771号