C/C++
xiaocuancuan
这个作者很懒,什么都没留下…
展开
-
条款25:考虑写出一个不抛异常的swap函数
条款25:考虑写出一个不抛异常的swap函数原创 2014-06-03 12:55:22 · 887 阅读 · 0 评论 -
条款13:以对象管理资源
条款13:以对象管理资源原创 2014-05-28 13:00:27 · 555 阅读 · 0 评论 -
条款15:在资源管理类中提供对原始资源的访问
条款15:在资源管理类中提供对原始资源的访问原创 2014-05-29 09:33:57 · 684 阅读 · 0 评论 -
条款10:令operator = 返回一个reference to *this
条款10:令operator = 返回一个reference to *this原创 2014-05-26 09:49:35 · 442 阅读 · 0 评论 -
条款9:绝不在构造函数和析构函数中调用virtual 函数
条款9:绝不在构造函数和析构函数中调用virtual 函数原创 2014-05-25 22:56:51 · 571 阅读 · 0 评论 -
条款8:别让异常逃离析构函数
条款8:别让异常逃离析构函数原创 2014-05-25 00:03:15 · 564 阅读 · 0 评论 -
条款5:了解C++默认编写并调用哪些函数
条款5:了解C++默认编写并调用哪些函数原创 2014-05-23 11:42:31 · 517 阅读 · 2 评论 -
条款7:为多态基类声明virtual析构函数
条款7:为多态基类声明virtual析构函数原创 2014-05-24 13:17:42 · 727 阅读 · 3 评论 -
条款4:确定对象被使用前已经被初始化
条款4:确定对象被使用前已经被初始化原创 2014-05-22 20:01:31 · 654 阅读 · 1 评论 -
条款27:尽量少做转型动作
条款27:尽量少做转型动作C++的四种显示类型转换原创 2014-06-05 08:46:05 · 870 阅读 · 0 评论 -
条款14:在资源管理类中小心coping行为
条款14:在资源管理类中小心coping行为 在前一个条款,我们提出了RAII(资源获得即是初始化)技术,通过“对象管理资源”达到防止资源泄露,对于通过堆分配的内存,可以借助指针指针实现,但系统中有很多资源不是堆分配:文件句柄,锁,网络套接字。这些资源就需要自己实现对象来管理。原创 2014-05-28 19:36:21 · 932 阅读 · 1 评论 -
条款12:复制对象时请勿忘每一个成分
当为一个类实现自己的构造函数,相关赋值函数,析构函数,则必须有责任对类中的每一个成员进行初始化、赋值、释放。因此:如果为一个类添加一个成员,就必须同时相应修改上面几类函数。原创 2014-05-27 19:58:20 · 684 阅读 · 2 评论 -
条款23:宁以no-member、no_friend替换member函数
条款23:宁以no-member、no_friend替换member函数原创 2014-05-30 15:25:29 · 1002 阅读 · 0 评论 -
条款22:将成员变量声明为private
条款22:将成员变量声明为private原创 2014-05-30 13:07:13 · 791 阅读 · 0 评论 -
条款21:必须返回对象时,别妄想返回其reference
条款21:必须返回对象时,别妄想返回其reference引用只是对象的一种别名当使用引用的时候,请确认他的另一个身份在哪?原创 2014-05-30 10:48:11 · 1071 阅读 · 0 评论 -
条款24::若所有参数皆需类型转换,请为此采用 non-member 函数
条款24::若所有参数皆需类型转换,请为此采用 non-member 函数原创 2014-05-30 23:00:08 · 721 阅读 · 0 评论 -
条款20:宁以pass-by-reference-to-const替换pass-by-value
条款20:宁以pass-by-reference-to-const替换pass-by-value原创 2014-05-30 09:17:16 · 885 阅读 · 0 评论 -
条款19:设计class犹如设计type
条款19:设计class犹如设计type原创 2014-05-29 19:47:15 · 651 阅读 · 0 评论 -
条款18:让接口容易被正确使用,不易被误用
条款18:让接口容易被正确使用,不易被误用原创 2014-05-29 18:45:54 · 695 阅读 · 0 评论 -
条款17:以独立语句将newed对象置入智能指针
条款17:以独立语句将newed对象置入智能指针原创 2014-05-29 12:17:24 · 663 阅读 · 0 评论 -
条款16:成对使用new和delete时要采取相同形式
条款16:成对使用new和delete时要采取相同形式原创 2014-05-29 10:24:12 · 723 阅读 · 0 评论 -
条款3:尽可能使用const
条款3:尽可能使用const原创 2014-05-22 10:05:02 · 616 阅读 · 0 评论 -
条款26:尽可能延后变量定义式出现的时间
条款26:尽可能延后变量定义式出现的时间原创 2014-06-03 19:03:04 · 740 阅读 · 0 评论 -
Vector容器删除元素
使用vector容器也有一段时间了,但是对于他的删除操作还是有点疑问,今天就总结一下。vector数据存储是一段预先分配好大小的内存连续的空间,插入数据和删除数据都会引起后面数据内存的整体移动。今天就说说删除操作吧1、删除最后的元素 直接使用pop_back()就可以了,这个没什么好说的;2、删除指定的元素 使用函数erase原创 2013-09-16 09:28:26 · 1051 阅读 · 0 评论 -
Epoll介绍和程序实例(转)
1. Epoll 是何方神圣?Epoll 可是当前在 Linux 下开发大规模并发网络程序的热门人选, Epoll 在 Linux2.6 内核中正式引入,和 select相似,其实都 I/O 多路复用技术而已 ,并没有什么神秘的。其实在 Linux 下设计并发网络程序,向来不缺少方法,比如典型的 Apache 模型( Process Per Connection ,简称 PPC),原创 2013-09-15 00:14:30 · 622 阅读 · 0 评论 -
C++的继承方式
C++支持多种程序设计风格,其中就包括对面向对象设计的支持。我们今天在这里将会为大家详细介绍一下各种C++继承方式的具体应用方法,希望能够帮助大家对这方面的知识有一个深入的认识。C++继承方式总共分为以下几种:public、private、protected三种(它们直接影响到派生类的成员、及其对象对基类成员访问的规则)。(1)public(公有继承):继承时保持基类中各成员属性不变,原创 2013-09-09 11:04:49 · 871 阅读 · 0 评论 -
Linux 进程通信 和 IO模型
主要内容: 第一部分 信号 第二部分 PIPE 和 FIFO 第三部分 消息队列 第四部分 信号量 第五部分 共享内存 第六部分 I/O模型 概念: 在先了解Linux进程间通讯时,需要首先了解几个概念: 1)随进程持续:IPC一直存在,直到打开IPC的最后一个进程关闭 2)随内核持续:IPC一直存在,直到系统重启或删除该对象为止 3)随文件系统转载 2013-09-11 22:16:49 · 1090 阅读 · 0 评论 -
C++构造函数的调用顺序
C++继承类的构造函数的调用顺序有以下三个步骤①先调用继承的基类构造函数,调用顺序是按照他们继承的顺序;②调用自身的内嵌成员对象,调用顺序是按照他们声明时的顺序,因为类在初始化时先初始化内部成员;③调用自身的构造函数;为了理解,上代码#include using namespace std;class Base{public: Base() {cout<<"原创 2013-09-11 21:52:36 · 762 阅读 · 0 评论 -
C++ 虚函数表解析(转载)
C++ 虚函数表解析 http://blog.csdn.net/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技原创 2013-09-05 10:11:34 · 575 阅读 · 0 评论 -
static关键字详解
在说明static之前,先说说计算机的内存存储分式1、计算机存储分式计算机内存存储分式主要分为以下5种①静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。②栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很原创 2013-09-08 22:06:50 · 606 阅读 · 0 评论 -
nginx源码学习资源(不断更新)
nginx源码学习是一个痛苦又快乐的过程,下面列出了一些nginx的学习资源。 首先要做的当然是下载一份nginx源码,可以从nginx官方网站下载一份最新的。看了nginx源码,发现这是一份完全没有注释,完全没有配置文档的代码。 现在你最希望要的是一份注释版的nginx源码,可以从下面的链接中下载一份:https://github.com/jian转载 2013-08-19 00:45:44 · 779 阅读 · 0 评论 -
C++内存泄露解析
1、定义内存泄露简单的说就是申请了一块内存空间,使用完毕后没有释放掉。它的一般表现方式是程序运行时间越长,占用内存越多,最终用尽全部内存,整个系统崩溃。2、内存泄露的各种情况1)new,malloc后没有delete,free2)创建内核对象(比如CreateFile,CreateMutex,CreateThread),后没有释放内核对象句柄.3)创建内存映射文件,Cr原创 2013-08-19 09:26:14 · 873 阅读 · 0 评论 -
unix环境高级编程-5.4-缓冲
其实缓冲在unix的操作系统里,就是为了减少read和write的调用次数。在第三章中,对不同缓冲区的长度设置,执行IO所要的cpu时间量是不一样的。他也对每个io流自动的进行缓冲管理,从而避免了应用程序需要考虑这一点所带来的麻烦。不幸的是,标准I/O库最令人迷惑的也是他的缓冲。标准I/O缓冲提供了三种类型的:(1)全缓冲。这种情况下,是在填满了标准的IO缓冲区后才进行实际的I/O转载 2013-09-18 10:52:39 · 508 阅读 · 0 评论 -
智能指针使用
http://blog.csdn.net/hackbuteer1/article/details/7561235 智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类转载 2013-11-26 17:35:46 · 510 阅读 · 0 评论 -
条款2:尽量以const,enum,inline 替换 #define
条款2:尽量以const,enum,inline 替换 #define原创 2014-05-21 19:32:21 · 479 阅读 · 0 评论 -
STL--函数对象学习
函数对象:一个重载了运算符()的个对象,可以像一个函数一样使用。原创 2014-05-20 20:18:07 · 451 阅读 · 0 评论 -
几种进程通信IPC比较
共享内存共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要原创 2014-04-09 09:53:47 · 695 阅读 · 0 评论 -
C++中构造函数能调用虚函数吗
以、看如下的代码:[cpp] view plaincopyclass Base { public: Base() { Fuction(); } virtual void Fuction() { cout "Base::转载 2014-04-08 19:35:26 · 579 阅读 · 0 评论 -
RAII惯用法:C++资源管理的利器
RAII惯用法:C++资源管理的利器RAII是指C++语言中的一个惯用法(idiom),它是“Resource Acquisition Is Initialization”的首字母缩写。中文可将其翻译为“资源获取就是初始化”。虽然从某种程度上说这个名称并没有体现出该惯性法的本质精神,但是作为标准C++资源管理的关键技术,RAII早已在C++社群中深入人心。我记得第一次学到RAII惯转载 2014-04-20 17:02:02 · 422 阅读 · 0 评论 -
c++继承中的内存布局
今天在网上看到了一篇写得非常好的文章,是有关c++类继承内存布局的。看了之后获益良多,现在转在我自己的博客里面,作为以后复习之用。——谈VC++对象模型(美)简.格雷程化 译译者前言一个C++程序员,想要进一步提升技术水平的话,应该多了解一些语言的语意细节。对于使用VC++的程序员来说,还应该了解一些VC++对于C++的诠释。 Inside the C++ Object转载 2014-04-20 22:06:51 · 337 阅读 · 0 评论