03 2012 档案
摘要:const用法总结从OSChina中看到一遍const用法总结,深感不错,特此转来。原文地址:http://my.oschina.net/sasa/blog/6994看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设计书籍建议:“Use const when
阅读全文
摘要:今天被同事问到一个问题,map中第三个参数的意思是什么,于是写了下面这个程序测试了一下。[cpp] view plaincopy#include<map>#include<iostream>usingnamespacestd;typedefmap<int,char>icMap;typedefmap<int,char>::iteratorIt;classfunc{public:func(){};booloperator()(constinti1,constinti2){returni1>i2;}};typedefmap<int,char
阅读全文
摘要:一般的书上都说,虚函数是在运行时根据对象的实际类型“动态决定”函数入口。但什么是“动态决定”呢?实际上C++编译器在实现这个功能的时候,并非真的 等到虚函数被调用时才去判断这个对象是什么类型的。下面我用一个简单的图表来说明C++编译器到底干了些什么。假设有两个类 struct Base { virtual void f(); virtual void g(); }; struct Derived : public Base { virtual void f(); virtual void g(); }; Base 和 Derived 各有一个虚表,分别是 VTable_B 和 VTa...
阅读全文