当你写一个catch子句时,必须确定让异常通过何种方式传递到catch子句里。你可以有三个选择:与你给函数传递参数一样,通过指针(by pointer),通过传值(by value)或通过引用(by reference)。 我们首先讨论通过指针方式捕获异常(catch by pointer)。从throw处传递一个异常到catch子句是一个缓慢的过程,在理论上这种方法的实现 发布时间:2012-07-04 作者: 佚名技术 views(473)
1. 重载、覆盖与隐藏 1).重载:成员函数具有以下的特征时发生重载 A.相同的范围(同一个类中) B.函数的名字相同 C.参数类型不同(不能进行隐式类型转换) D.Virtual关键字可有可无 2).覆盖(也叫继承):指派生类函数覆盖基类函数,特征是: A.不同的范围(分别位于基类与派生类中) B.函数名字相同 C.参数相同 D 发布时间:2012-07-04 作者: 佚名技术 views(339)
C++类对象内存结构 首先介绍一下C++中有继承关系的类对象内存的布局:在C++中,如果类中有虚函数,那么它就会有一个虚函数表的指针__vfptr,在类对象最开始的内存数据中。之后是类中的成员变量的内存数据。 对于子类,最开始的内存数据记录着父类对象的拷贝(包括父类虚函数表指针和成员变量)。之后是子类自己的成员变量数 发布时间:2012-07-04 作者: 佚名技术 views(610)
作用: 表示一个作用于某对象结构中的各元素的操作.它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作. UML结构图: 解析: Visitor模式把对结点的访问封装成一个抽象基类,通过派生出不同的类生成新的访问方式.在实现的时候,在visitor抽象基类中声明了对所有不同结点进行访问的接口函数,如图中的VisitConcreate 发布时间:2012-07-04 作者: 佚名技术 views(324)
由于c是char类型,取值范围是[-128,127],如果宏EOF的值在char的取值范围之外,那么if语句将总是失败,这种危险人们一般哪里料得到!导致本例错误的责任并不在用户,是函数getchar误导了使用者。 l 【规则6-2-3】不要将正常值和错误标志混在一起返回。正常值用输出参数获得,而错误标志用return语句返回。 回顾上例,C标准 发布时间:2012-05-23 作者: 佚名技术 views(304)
第3章 命名规则 比较著名的命名规则当推Microsoft公司的匈牙利法,该命名规则的主要思想是在变量和函数名中加入前缀以增进人们对程序的理解。例如所有的字符变量均以ch为前缀,若是指针变量则追加前缀p。如果一个变量由ppch开头,则表明它是指向字符指针的指针。 匈牙利法最大的缺点是烦琐,例如 int i, j, k; float x, y, 发布时间:2012-05-23 作者: 佚名技术 views(275)
8.1.3 当心隐式类型转换导致重载函数产生二义性 示例8-1-3中,第一个output函数的参数是int类型,第二个output函数的参数是float类型。由于数字本身没有类型,将数字当作参数时将自动进行类型转换(称为隐式类型转换)。语句output(0.5)将产生编译错误,因为编译器不知道该将0.5转换成int还是float类型的参数。隐式类型转换 发布时间:2012-06-30 作者: 佚名技术 views(276)
l 【规则3-1-8】用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。 例如: int minValue; int maxValue; int SetValue(); int GetValue(); 2 【建议3-1-1】尽量避免名字中出现数字编号,如Value1,Value2等,除非逻辑上的确需要编号。这是为了防止程序员偷懒,不肯为命名动脑筋而导致产生无意义的名字(因为用数字 发布时间:2012-06-30 作者: 佚名技术 views(269)
|