C++
luckxu
Any problem in computer science can be solved by another layer of indirection.
展开
-
C++ new 详解
本文转自:http://blog.csdn.net/songthin/article/details/1703966?reload “new”是C++的一个关键字,同时也是操作符。关于new的话题非常多,因为它确实比较复杂,也非常神秘,下面我将把我了解到的与new有关的内容做一个总结。new的过程当我们使用关键字new在堆上动态创建一个对象时,它实际上做了三件事转载 2013-06-04 21:33:31 · 558 阅读 · 0 评论 -
类的初始化列表与构造函数的区别
类的初始化列表与构造函数的区别构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如:Example::Example() : ival(0), dval(0.0) {}//ival 和dval是类的两个数据成员上面的例子和下面不用初始化列表的构造函数看似没什么区别:Example::Example(){iva转载 2013-12-11 22:20:41 · 435 阅读 · 0 评论 -
C++编译器与链接器工作原理
zz: http://blog.sina.com.cn/s/blog_5f8817250100i3oz.html要明白的几个概念: 1、编译:编译器对源文件进行编译,就是把源文件中的文本形式存在的源代码翻译成机器语言形式的目标文件的过程,在这个过程中,编译器会进行一系列的语法检查。如果编译通过,就会把对应的CPP转换成OBJ文件。 2、编译单元:根据C++标准,转载 2014-02-28 23:06:54 · 512 阅读 · 0 评论 -
n个数顺序入栈后的出栈顺序
解法①:递推法有n个位置,现在任意选定一个数,比如1,那么1可以在1-->n的任意一个位置上。假设1在第k的位置上,显然在1的前面有k-1个数,并且这些数的数值为2-->k,在1后面有n-k个数。用f(k)表示k个数顺序入栈后的出栈顺序,则f(n)就是我们要求的最终答案。而f(n)这个事件又可以分解成1在1-->n这n个位置上出现的n种情况,于是根据加法/乘法原理,易得f(n)is Cat转载 2014-04-05 17:37:14 · 1128 阅读 · 0 评论 -
如何理解C++中的动态绑定
在浏览C++论坛时,我总是能发现很多C++初学者的提问帖子,都是关于动态绑定的。基本大意就是不完全理解动态绑定该如何理解,造成一些面试或者实际编程上的困扰。本文就是针对这个问题作出的解答。作者并非技术大牛,不当之处还请大家在评论中指出,在下万分感谢。 我对于C++动态绑定的理解,一句话,就是编译器用静态分析的方法加上虚拟函数的设计实现在程序运行时动态智能执行正确虚拟函数的转载 2014-05-21 23:54:13 · 679 阅读 · 1 评论 -
表达式求值(前缀、中缀、后缀)
为了简化问题,关注算法,本文的讨论基于以下三点:1. 只考虑 + - * / ( ) 这几个基本运算符,且是二元操作2. 运算数只考虑 0-9,这10个简单的数,方便从string中取出来3. 输入的表达式没有语法错误 【背景知识】中缀表示法(Infix expression):操作符位于两个操作数中间,算术表达式的常规表示法。只用于二元操作符的情况,而且需要用括号和优先规转载 2014-01-04 19:25:42 · 1234 阅读 · 0 评论