摘要:
在ACE的源代码目录里,有源文件.cpp、头文件.h,我们还发现有以.i和.inl为扩展名的文件。其实,以.i和.inl为扩展名的文件是ACE源码中inline函数的存放形式。在说明ACE中为什么采用这种方式来存放inline函数之前,我们来说一下inline关键字是什么意识。我们知道当调用一个函数的时候,涉及到返回地址和参数压栈等一些操作,这些操作是函数调用本身的开销。在原来的C代码中,通常采用宏定义的方式模拟函数,来消除函数调用的开销,因此我们知道宏是在预编译时候进行处理的。但是,宏定义本身也有很多缺陷,很容易造成错误的使用。这就是inline关键字诞生的原因。用inline关键字定义的函 阅读全文
摘要:
struct tm 是否需要初始化,如何初始化,特别是自己构造tm,而不借助库函数解析时间时. 应该初始化m_isdest = -1使用strptime ,因为strptime使用tm当做出参,会帮助初始化tm 阅读全文
摘要:
时间以及时区设置首先确认使用utc还是local time.UTC(Universal Time Coordinated)=GMT(Greenwich Mean Time)Local time 是你手表上的时间传统的POSIX计算机(Solaris,bsd,unix)使用UTC格式linux可以处理UTC时间和蹩脚的Windows所使用的local time到底是使用UTC还是local time可以这样来确定:如果机器上同时安装有Linux和Windows,建议使用local time如果机器上只安装有Linux,建议使用utc确定后编辑/etc/sysconfig/clock, UTC=0 阅读全文
摘要:
vector的元素可以是任意类型T,但必须具备赋值和拷贝能力(具有public 拷贝构造函数和重载的赋值操作符). 其实很容易理解,自定义一些模板时,同样会需要其实例化类型具备默写操作(如大于小于操作等。) 下面一个自定义模板类就需要dump函数了:template<class T>inline static void Dumpvector(const std::vector<T *> &vvector){ std::vector<T *> ::iterator pvectorIt = vvector.begin(); for(; pvectorIt 阅读全文
摘要:
公有继承体现 "是一个" 的含义,但是Student "是一个" Person的事实并不说明Student的数组 "是一个" Person数组。 阅读全文