函数调用时堆栈框架 http://blog.csdn.net/candycat1992/article/details/8130508创建堆栈框架总体看来,构建一个堆栈框架包含了以下几个步骤:如果要调用的函数有参数,将参数压入堆栈;用call指令调用子程序;此时子程序开始,将ebp寄存器压入栈:push ebp;将ebp的值设为esp(只是为了方便以后访问参数和局部变量
子类函数覆盖 子类函数覆盖#include #include using std::cout ;class Base{public: Base() {} void TestFunction() { cout }};class Derived : public Base{public: //using Base
c++ 面向对象类设计五项基本原则 原文:http://www.cnblogs.com/skyofbitbit/archive/2012/09/09/2677470.html类设计五项基本原则类设计五项基本原则原则:单一职责原则开放封闭原则Liskov替换原则依赖倒置原则接口隔离原则 第8章 单一职责原则 ( SRP )就一个类而言.应该仅有一个引起它变化的原因. 一个cla
string和string.h和cstring 区别 C++标准库很大。非常大。难以置信的大。怎么个大法?这么说吧:在C++标准中,关于标准库的规格说明占了密密麻麻300 多页,这还不包括标准C 库,后者只是"作为参考"(老实说,原文就是用的这个词)包含在C++库中。当然,并非总是越大越好,但在现在的情况下,确实越大越好,因为大的库会包含大量的功能。标准库中的功能越多,开发自己的应用程序时能借助的功能就越多。C++库并非提供了一切(很明显的是,没有提
IEEE浮点数表示--规格化/非规格化/无穷大/NaN 转自:http://blog.csdn.net/hqin6/article/details/67011091.规格化的值以sizeof(float)=4为例:1.5的浮点数表示:1)1.5转换为2进制:1.12)转换:0.1*2^0 (整数部分的1省略)3)得到阶码:127+0=127,即0111 1111 (指数
原码,反码,补码 在计算机内,定点数有3种表示法:原码、反码和补码 所谓原码就是前面所介绍的二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。 反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。 补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。 1、原码、反码和补码的表示方法 (1) 原码
N个数,求第K大数 有n个不重复的数,这n个数可以放入内存中,让你用最快的方法找到第k大的数。解答:一般情况我们可能考虑,先将n个数排序(快排序、堆排序),然后可以得到结果。但是当n很大时这样做的效率会很低。所以我们提出一种更高效的方法:利用快速排序的特点:第一遍排序会确定一个数的位置,这个数左边都比它大,右边都比他小(降序),当左边区间大于K时,说明我们求的第K大数在左边区间,这时我们可以舍
boost线程池 #include #include #include #include #include #include #include #include #include using namespace std;int filedes[2];int main( void ){ char buf[80]; pid_t pid; pipe( file
timerfd 看一下timerfd的例子,上代码:[cpp] view plaincopy#include #include #include #include #include #include #include /* Definition of uint64_t */ #define
epoll epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且
boost源码剖析之:泛型函数指针类 boost源码剖析之:泛型函数指针类boost::function(rev#3) 刘未鹏C++的罗浮宫(http://blog.csdn.net/pongba) Note: 并非新作,03年曾放在blog上,现在这个版本应该是修改后的最终版本。 前奏如你所知,boost库是个特性完备,且具备工业强度的库,众多C++权威的参与使其达到了登峰造极的程度。尤其泛型的强大威
boost::bind 绑定成员函数 #ifndef BOOST_BIND_BIND_HPP_INCLUDED__Mybind#define BOOST_BIND_BIND_HPP_INCLUDED__Mybind#include using namespace std;namespace boost {template struct is_placeholder {enum _vt {value = 0};};template st
boot::bind #include using namespace std;template struct arg {arg() {}};template struct storage1 {explicit storage1(A1 a1) :a1_(a1) {cout}A1 a1_;};template struct sto