自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李永亮的专栏

设计改变中国!

  • 博客(25)
  • 收藏
  • 关注

原创 More Effective C++之7

条款7:千万不要重载&&,||和.操作符       关于&&和||的瞬间死亡定律是C++的基本准则。所以重载会破坏这个准则。而.包含的含义很多,没有什么必要的话,也不要重载。同样的警告包括. | .* | :: | ?: | new | delete | sizeof | typeid | static_cast | dynamic_cast | const_cast | reinterpr

2006-05-31 18:11:00 677

原创 More Effective C++之6

条款6:区别increment/decrement操作符的前置(prefix)和后置(postfix)形式       在C++中提供了increment/decrement操作符的重载。class A{       A& operator++();                 //++i       const A& operator++(int);     //i++

2006-05-31 16:29:00 748

原创 More Effective C++之5

条款5:对定制的[型别转换函数]保持警觉class Sample{public:       Sample(int i){m_i = i;}       operator int(){return 10;}protected:private:       int m_i;}; int main(int argc, char* argv[]){  

2006-05-31 09:58:00 754

原创 More Effective C++之4

条款4:非必要不提供default constructor       对这一条款之中的详情,我处于半解之中。首先要说的是,关于default constructor在不显示提供的情况下,不同编译器存在不同的策略。我不认为所有编译器在这里会提供同样的方法。如果显示的提供这样的方法。我觉得未见得不好。我拿VC6作了一个测试,检测VC6的策略。测试表明default constructor会递归调

2006-05-30 17:05:00 771

原创 More Effective C++之3

条款3:绝对不要以多态(polymorphically)方式处理数据       对于多态来说,虽然是好东西,但它带来的结果是对象的大小可能发生变化,基类和派生类的大小并不一致。数组是C的产物,它不能有效承载大小不一的对象,尽管它们来自于同一基类。目前就我所知,并没有支持多态的对象容器,也许有我不知道。如果是我的话,就避免这种用法。

2006-05-29 18:22:00 763

原创 More Effective C++之2

条款2:最好使用C++转型操作符       static_cast(expression),以前的转型现在最好用这个代替吧。这个加上const_cast基本上构成了原有C风格转型的功能。dynamic_cast给出了一个安全的向下转型的操作。它的基础在于对象的虚函数表,对不具备虚函数的继承类无效,这需要加以关注。reinterpret_cast是强制将指针转型,不建议使用。如果需要的话,还不

2006-05-29 14:00:00 687

原创 More Effective C++之1

条款1:仔细区别pointers和references       不能将引用的对象指向一个指针的提领。类似于       string* s1 = NULL;       string& s2 = *s1;这种做法是一定要避免的,这时标准中未定义的,发生任何事情都有可能。当知道所需要指向的某个东西,而且绝不会改变指向其他东西,或者实现一个操作符而其语法无法由pointers完成,

2006-05-29 09:24:00 683 1

原创 NMS搜索路径

在oamsys的时候,怎么知道文件的路径在什么地方呢?有一个Windows环境变量叫做AGLOAD,启动程序会根据AGLOAD的路径顺序依次搜索,直到搜到为止。优先是先AG,再CG,最后OAM。同样的环境变量还有CTA_DPATH。NMS有搜索文件的API,ctaFindFileEx。

2006-05-26 10:04:00 825

原创 Windows下STLPort和ACE

这些天做了一些事情,主要是ACE和STLport在windows下的编译,今天编译很顺利,共有三个成果。STLport4.6.2 Windows版,ACE5.5 Windows版,ACE5.5 Windows STLport版,我很奇怪的是网上所说的ACE和STLport的兼容问题我居然没有遇到,继续跟踪。有人知道所谓的不兼容是怎么回事?我用的版本号是STLport4.6.2和ACE5.5。

2006-05-23 19:07:00 1018

原创 移动疏忙系统

       今天接触到疏忙系统,可能移动和联通都有,都是在7号中做了一些工作。以ISUP为例,在IAM发起后,如果用户状态不正常,如用户忙,则在ACM中发送挂断原因值,交换机受到这个原因值开始放相应提示音,等到呼叫超时后,正常挂断。所以会出现ACM中有挂断原因值,而REL中是正常挂断的情况。

2006-05-22 18:34:00 1073

原创 ISDN Setup 超时

今天遇到一个问题,在ISDN中连续遇到两条Setup消息,这两天消息所有的信息都一样,间隔是4秒。后来查到Q.931的时钟标准,T303正是这样一个时钟。Q.931协议规定,如果发送Setup后4秒钟,没有收到对端的消息回应,则认为超时,策略是第一次超时重发,第二次超时中止,清除呼叫,认为呼叫非正常中止。Q.931还定义了其他的时钟,如果有时间的话,会详细阅读。

2006-05-22 18:26:00 888 1

原创 Exceptional C++ Style之27

第27条 数据格式和效率之二:(甚至更少的)位操纵       class CBitBuffer {public:       CBitBuffer(){};       virtual ~CBitBuffer(){};       size_t Size() const{              return buf_.size();       }  

2006-05-18 19:52:00 725

原创 经验一定是正确的么

    一转眼工作已经一年了,算得上有了一点经验。对我来说,对个人的发展好像到达了一个坎上,如果能顺利迈过这个坎,今后还能快速成长,如果不能今后就庸庸碌碌了。       我觉得比较重要的一点是要正确看待目前拥有的经验。昨天发生一件事情,我在重装NMS驱动的时候,发现CT Daemon无法启动。按照经验,我花了很长时间重装驱动,但是依然没有能解决问题。这时候是经验失效了。后来发现,由于NA20

2006-05-18 15:26:00 1069

原创 NMS的会议概述

NMS会议其实可能比较简单了需要注意的也就是文档上的一些表格的注释No E    is used for CNF_NO_ECHO_CANCEL (cnfCreateConference)                     or NO_ECHO_CANCEL (cnf.cfg file)No D is used for CNF_NO_DTMF_CLAMPING (cnfCreateCo

2006-05-17 17:02:00 894

原创 NMS的wave相关

    现在要写的是NMS的wave相关的问题,那么从NMS的配置开始。       (rvoice.rec_alaw | rvoice.play_alaw)       这项配置的含义在于支持NMS 8K 的wave,如果配置这一项加上DTMF检测的话,对CG6500来说,每个DSP能配16路。.如果加上下面的配置,那么每个DSP只能支持6路。这两项配置提供了支持11k8bit和11

2006-05-17 12:04:00 998

原创 Exceptional C++ Style之39-40

第39条 分解std::string之三:给std::string瘦身第40条 分解std::string之四:再论std::string    这里面我所最感兴趣的是一个警示:永远不要使用那些在写缓冲区时不进行越界检查的函数(例如strcpy、sprintf等)或那些可能不会为C风格字符串加上结束符的函数(例如strncpy、basic_string::copy等)。它们非但是潜伏的威胁

2006-05-16 11:34:00 677

原创 关于C++异常抛出指针问题的探讨

在C++中,抛出的异常如果是一个对象,系统会将这个对象复制一份向外抛出。try{exception e;throw e;}catch(exception& e){}注意,抛出的e和catch到的e并不是同一个e,而是系统自动复制的一份对象。对指针来说,情况有所不同。try{exception* e = new exception();throw e;

2006-05-15 10:21:00 2097

原创 Exceptional C++ Style之38

第38条 分解std::string之二:重构std::string       泛型目前的主要应用是容器,然而往往被忽略的是泛型算法。而对于泛型编程也是,实现泛型的算法,比绑死的成员算法要优秀,有利于改善类的封装性。关于效率的问题,这里值得一提,除了特殊的数据结构,一般的算法都是可能取得差不多的效率,这也是序列式容器提供自己算法的原因。看看一些算法的实现:templatebool

2006-05-11 21:48:00 860

原创 Exceptional C++ Style之37

第37条 分解std::string之一:概观std::string       对我来说,std::string是我非常感兴趣的一个类,事实上看Meyers的书,就对各种std::string的商用实现做了剖析。但是Sutter的角度不一样,他是从设计的角度分析std::string的设计不合理性。       尽可能编写单一职守的类和函数,尽量编写非成员非友元的函数,需要注意的是这里声

2006-05-11 21:28:00 721

原创 Exceptional C++ Style之36

第36条 构造式union       Union这个东西使用的很早,最早是为了使用构造一个H.248对象,在使用Struct的情况下,这个对象的大小差不多是200多M,这在当时显然有点不可接受,所以选用了union,这对降低内存大小起了数量级上的作用。一个类要放入union,必须具有如下特点,构造函数等大三样必须是平凡的;无虚函数或者虚基类;其基类和非静态成员都满足这两点要求。     

2006-05-10 22:27:00 812

原创 Exceptional C++ Style之35

第35条 泛型回调       回调函数是非常好用的一种手段,在泛型中自然会有一点不同。       写一点关于风格的问题,explicit是非常好的关键字,如果没有什么特殊需要可以给构造函数加上,可以避免很多类型隐式转换引起的问题。使用const的话就不想多说了。提供operator()似乎是一个比较好的方法,可能比具名的执行函数要好。我们可能在模板参数上确实有些值得商榷的地方,除非这些

2006-05-10 21:31:00 798

原创 Exceptional C++ Style之34

第34条 索引表       如何把泛型写的更加规范?       一般来说,优先考虑编写清晰、正确的代码。       对于main()a函数,不要依赖隐式int,这不是符合标准的可移植的C++。void main()和main()的写法是应该避免的。如果成员函数不会修改对象成员,那么将此函数声明成const函数。避免代码的冗余和重复。选择清晰而有意义的名字。了解并在任何适当的地方使

2006-05-04 20:06:00 826

原创 Exceptional C++ Style之33

第33条 操作符,无所不在的操作符       贪婪匹配,这是C++编译器的一个准则,也就是说,C++编译器会尽量匹配多的字符。以此为基础,会衍生出很多有趣的东东。       在一个合法的C++程序中,允许包含无限个+号,这会以此解释为++的叠加。那么其他符号能连续多少个?& 5个,&A::operator&&&&&a,means operator&&(&A::operator&&,&a

2006-05-04 19:09:00 690

原创 NMS Switch

       H.110 Bus是一个普遍的标准的32*128的TimeSlot。这对于Compact PCI来说都是一样一样的。       那么NMS不同之处在于它内部存在自己的Local Bus.以CG6000C为例。首先要学会showcx95,通过信息来看交换。我们目前的交换存在一些问题,就是没有针对资源进行优化,也就是说没有针对多板之间的资源分配进行优化。其实从效率上来说,板内资源调

2006-05-04 18:47:00 1052

原创 Exceptional C++ Style之32

第32条 小小的拼写错误?鬼画符似的语言以及其他奇形怪状的东西       //这个地方是否会出现问题???????????/这似乎是我常用的注释,等等有点不一样。多了一个/,我似乎以前没有加这个斜杠的习惯,上帝保佑,幸好没有。否则发生的问题我一定没有办法进行解释,当时绝对不行,因为我也没有听说过出现什么样的事情。       C++中有一些三字词组,通常不会产生问题。这是对付78键之

2006-05-04 18:42:00 733

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除