摘要:
(上)TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP 详解 卷1:协议》(当然,你也可以去读一... 阅读全文
2015年8月30日
2015年8月29日
摘要:
1:一个空的class在C++编译器处理过后就不再为空,编译器会自动地为我们声明一些member function,如果你写class A{};编译器处理后,就相当于:class A{public:A(); //默认构造函数A(const A&); //拷贝构造函数~A(); //析构函数A& op... 阅读全文
摘要:
1 为什么要用友元函数结合着类的特性和类中一般成员函数,我们可以这样理解:类具有封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的。非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况下,特别... 阅读全文
摘要:
char* itoa(int num,char*str,int radix) {/*索引表*/ char index[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; unsigned unum;/*中间变量*/ int i=0,j,k; /*确定unum的值*/ if(radix==10&&num= 48 && c I... 阅读全文
2015年8月25日
摘要:
三种线程——内核线程、轻量级进程、用户线程内核线程内核线程就是内核的分身,一个分身可以处理一件特定事情。这在处理异步事件如异步IO时特别有用。内核线程的使用是廉价的,唯一使用的资源就是内核栈和上下文切换时保存寄存器的空间。支持多线程的内核叫做多线程内核(Multi-Threads kernel )。... 阅读全文
摘要:
http://blog.csdn.net/zephyr_be_brave/article/details/8944967http://www.cnblogs.com/yunsicai/p/3326105.htmlhttp://www.cppblog.com/prayer/archive/2009/0... 阅读全文
摘要:
1 指针作为参数传递其实也是值传递,传递的是一个地址值(和普通的值传递一样)。值传递时函数将形参被当做函数的局部变量来处理,就是在栈上开辟了内存空间来存放形参void swap(int* a, int* b){ int t = *a; *a = *b; *b = t;}//这样并不能交换a,bvoi... 阅读全文
2015年8月24日
摘要:
一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数... 阅读全文
摘要:
# include # include # include using namespace std; class MyString { private: char *m_data; public: MyString(); MyString(const char* ptr); MyString(const MyString& rhs); ~MyStri... 阅读全文
2015年8月23日