4.6类与结构、联合的关系 本章讨论类的另外两种形式的设计。并将 class与 struct, union关系作比较说明。 4.6.1结构与类 类的语法与结构的语法相似。在C+中,结构具有面向对象的特征,结构的扩展形式是: struct type name //public function and members private //private function and members jobject list; 与 class一样,用 struct也可以创建一个新类。所不同的是在缺省情况下, class的成员 都是私有的,而 struct的成员是公有的。 4.6.2联合与类 在C++中联合也可以用于类的定义,其方法与结构一样。可以有构造函数和析构函数。 同一联合体内的所有数据成员共享一个内存空间。这是一般类无法实现的功能。 例4.1]l按字节显示一个数的二进制值EX41lCPP(?)。 在C++中使用联合的限制如下: (1)、联合不能从其他类继承属性。 (2)、联合不能作为基类派生子类。 (3)、联合不能包含任何静态成员 (4)、联合成员对象不能拥有自己的构造函数和构构函数 表4.2类、结构和联合之间的差别 结构 ‖联合 说明使用的关建字 ass Union 默认的成员访问权限「私有“「公有 公有 使用权限 无 同时只能使用一个成员 4.7类设计应用实例解析 下面的程序是一个双精度型向量灯的例子。它包含了一些简单的操作,如加法、数乘向 量、统计向量个数等。在程序中重载了一些运算符,这方面的内容可参阅后续章节 [例4.12]双精度型向量类实例EX4_12CPP
4.6 类与结构、联合的关系 本章讨论类的另外两种形式的设计。并将 class 与 struct,union 关系作比较说明。 4.6.1 结构与类 类的语法与结构的语法相似。在 C++中,结构具有面向对象的特征,结构的扩展形式是: struct type_name{ //public function and members private: //private function and members }object_list; 与 class 一样,用 struct 也可以创建一个新类。所不同的是在缺省情况下,class 的成员 都是私有的,而 struct 的成员是公有的。 4.6.2 联合与类 在 C++中联合也可以用于类的定义,其方法与结构一样。可以有构造函数和析构函数。 同一联合体内的所有数据成员共享一个内存空间。这是一般类无法实现的功能。 [例 4.11] 按字节显示一个数的二进制值 EX4_11.CPP(?)。 在 C++中使用联合的限制如下: (1)、联合不能从其他类继承属性。 (2)、联合不能作为基类派生子类。 (3)、联合不能包含任何静态成员。 (4)、联合成员对象不能拥有自己的构造函数和构构函数。 表 4.2 类、结构和联合之间的差别 类 结构 联合 说明使用的关建字 Class Struct Union 默认的成员访问权限 私有 公有 公有 使用权限 无 无 同时只能使用一个成员 4.7 类设计应用实例解析 下面的程序是一个双精度型向量灯的例子。它包含了一些简单的操作,如加法、数乘向 量、统计向量个数等。在程序中重载了一些运算符,这方面的内容可参阅后续章节。 [例 4.12] 双精度型向量类实例 EX4_12.CPP