2013年4月4日
摘要: C++中的预处理命令分类:vc++经验谈2009-07-02 15:061024人阅读评论(0)收藏举报c++iostream编译器语言filepreprocessorC++中的预处理命令转来的:http://blog.csdn.net/zy102600/article/details/4316205一、预处理的由来: 在C++的历史发展中,有很多的语言特征(特别是语言的晦涩之处)来自于C语言,预处理就是其中的一个。C++从C语言那里把C语言预处理器继承过来(C语言预处理器,被Bjarne博士简称为Cpp,不知道是不是C Program Preprocessor的简称)。二、常见的预处理功能: 阅读全文
posted @ 2013-04-04 17:16 侠骨豪情 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 队列实现栈,以及栈实现队列:http://blog.csdn.net/zgh1988/article/details/6988904bloom Filter :http://blog.csdn.net/jiaomeng/article/details/1495500 阅读全文
posted @ 2013-04-04 16:52 侠骨豪情 阅读(184) 评论(0) 推荐(0) 编辑
  2013年3月31日
摘要: 【转帖】cin输入流的fail(),clear(),sync(),例子详解___有疑惑的看过来by健 张- 星期六, 31 十月 2009, 05:26 下午考虑如下代码:#include using namespace std;int main(){int a;while(cout>a,! (a>=1 && ausing namespace std;int main(){int a;while(cout>a,! (a>=1 && a>K),要用 if( cin>>K , cin.fail()) 。前者可能会失败。--- 阅读全文
posted @ 2013-03-31 17:35 侠骨豪情 阅读(311) 评论(0) 推荐(0) 编辑
  2013年3月5日
摘要: 从语法上看,在函数里声明参数与在catch子句中声明参数是一样的,catch里的参数可以是值类型,引用类型,指针类型。例如:try{ .....}catch(A a){}catch(B& b){}catch(C* c){}尽管表面是它们是一样的,但是编译器对二者的处理却又很大的不同。调用函数时,程序的控制权最终还会返回到函数的调用处,但是抛出一个异常时,控制权永远不会回到抛出异常的地方。class A;void func_throw(){ A a; throw a; //抛出的是a的拷贝,拷贝到一个临时对象里}try{ func_throw();}catch(A a) //临时对象的拷 阅读全文
posted @ 2013-03-05 16:07 侠骨豪情 阅读(822) 评论(0) 推荐(0) 编辑
  2013年3月4日
摘要: http://www.cppblog.com/xczhang/archive/2008/01/20/41508.htmlC++虚函数表解析(转)C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从 阅读全文
posted @ 2013-03-04 20:19 侠骨豪情 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 静态类型(在编译时可知的引用类型或指针类型)动态类型(指针或引用所绑定的对象的类型这是仅在运行时可知的)[cpp]view plaincopy#includeusingnamespacestd;classA{public:A(){fun();};//private://如果这里设置为private则编译不通过virtualvoidfun(inti=10){coutfun();system("pause");return0;}为什么编译不通过?(当设置为public 时,输出: B init 10 )过程:1,在编译阶段,p->fun(); 只是按其静态类型来处理的, 阅读全文
posted @ 2013-03-04 17:13 侠骨豪情 阅读(254) 评论(0) 推荐(0) 编辑
  2013年3月3日
摘要: placement new (转)有关placement new 作者: hzh5121. placement new的含义 placement new 是重载operator new 的一个标准、全局的版本,它不能够被自定义的版本代替(不像普通版本的operator new 和 operator delete能够被替换)。void *operator new( size_t, void *p ) throw() { return p; }placement new的执行忽略了size_t参数,只返还第二个参数。其结果是允许用户把一个对象放到一个特定的地方,达到调用构造函数的效果。和其他普通. 阅读全文
posted @ 2013-03-03 19:56 侠骨豪情 阅读(243) 评论(0) 推荐(0) 编辑
摘要: sizeof和sizeof(string)的问题今天看《程序员面试宝典》一书(为了应付将要到来的微软笔试),看到了sizeof(string)这个问题。在Dev C++上测试的结果是4,很不明白。上网搜了一下,得到如下结果:string strArr1[]={"Trend", "Micro", "Soft"};sizeof(strArr1)=12转自:http://apps.hi.baidu.com/share/detail/30398570关于sizeof(string),今天看那本面试宝典的时候看到这个表达式,有点吃惊,书上写着s 阅读全文
posted @ 2013-03-03 15:42 侠骨豪情 阅读(779) 评论(4) 推荐(0) 编辑
  2013年3月1日
摘要: 原文地址:【转】C++中结构体的内存空间占用作者:E览众山小关于内存对齐一:1.什么是内存对齐假设我们同时声明两个变量:char a;short b;用&(取地址符号)观察变量a,b的地址的话,我们会发现(以16位CPU为例):如果a的地址是0x0000,那么b的地址将会是0x0002或者是0x0004。那么就出现这样一个问题:0x0001这个地址没有被使用,那它干什么去了?答案就是它确实没被使用。因为CPU每次都是从以2字节(16位CPU)或是4字节(32位CPU)的整数倍的内存地址中读进数据的。如果变量b的地址是0x0001的话,那么CPU就需要先从0x0000中读取一个short 阅读全文
posted @ 2013-03-01 23:06 侠骨豪情 阅读(449) 评论(0) 推荐(0) 编辑
摘要: --------------------------CONST---------------------------------------const应用:一、对于基本声明 const int r=100;//标准const变量声明加初始化,编译器经过类型检查后直接用100在编译时替换。 二、对于指针 1. int x=10; const int *r=&x; //指针指向的内容是常量,r指向的内容不能够通过r改变,但如果是非const,内容可以通过自己改变,而且r指针可以改变,可以指向其它的整形. //*r=*r+1;NO //x++;YES //r=&y;YES 2. in 阅读全文
posted @ 2013-03-01 22:23 侠骨豪情 阅读(472) 评论(0) 推荐(0) 编辑