摘要: 改变旧有的C习惯 C是一个单纯的语言,提供的是macros、pointer、struct、arrays和function.不论解决什么问题,答案总是由这5者构成。 C++可不一样,当然,上述五者仍存在,但还有private members、protected members,function overloading,default parameters,constructors,destructors,user-defined operators, inline functions, references, friend, template, exceptions, namespaces以.. 阅读全文
posted @ 2013-09-29 21:51 wiessharling 阅读(175) 评论(0) 推荐(0)
摘要: 一、声明 所谓声明,是用来将一个object、function、class 或 template 的类型名称告诉编译器。声明并不带有细节 信息,一下都是声明:extern int x; //object declarationint numDigits(int num); //function declarationclass Clock; //class declarationtemplate class SmartPointer; //template declaration二、定义 所谓定义,是用来将细节信... 阅读全文
posted @ 2013-09-29 21:13 wiessharling 阅读(215) 评论(0) 推荐(0)
摘要: 复制构造函数、赋值操作符和析构函数总称为复制控制。编译器自动实现这些操作,但类也可以定义自己的版本。 实现复制控制操作最困难的部分,往往在于识别何时需要覆盖默认版本。有一种特别常见的情况需要类定义自己的复制控制成员:类具有指针成员。一、复制构造函数 特点:只有单个形参;该形参是对本类型对象的引用(const T&)。 复制构造函数可以用于: 1. 根据另一个同类型的对象显式或隐式地初始化一个对象。 2. 复制一个对象,将它作为实参传给一个函数。 3. 从函数返回时复制一个对象。 4. 初始化顺序容器中的元素。 5. 根据元素初始化式列表初始化数组元素。1.1、初始化:复制初... 阅读全文
posted @ 2013-09-29 17:32 wiessharling 阅读(213) 评论(0) 推荐(0)
摘要: C++提供了一种特殊的指针类型void*,它可以保存任何类型对象的地址:void*表明该指针与一地址值相关,但不清楚存储在此地址上的对象的类型。 void*指针只支持几种有限的操作:1)与另一个指针进行比较;2)向函数传递void*指针或者从函数返回void*指针;3)给另一个void*指针赋值。 不允许使用void*指针操纵它所指向的对象。 阅读全文
posted @ 2013-09-29 16:26 wiessharling 阅读(184) 评论(0) 推荐(0)