4.3类构造的存储设计 前面已经说明了:类对象可以自动初始化:类能控制成员变量的内存分配。本节进一步 讨论一些特殊问题,静态存储和动态存储问题。 4.3.1类的静态成员 在说明定义一个类时,可以使用 statIc关键字指定静态成员(函数和数据) 静态成员的特征是仅仅建立第一个对象的拷贝,并被该类的所有对象共享。它改变了 每个对象在建立时都必须自己拷贝的情况。 静态成员函数是被一个类中所有对象共享的成员函数,不属于某个特定对象。因此, 般只用于访问静态数据成员或全局变量。 调用静态成员函数,可以在其名字前加类名或对象名,但使用对象名容易令人产生混淆 故不鼓励使用 [例4.5]带有静态成员的类的实例EX4CP 4.3.2对象的动态存储分配 在C++中,通常使用new和 delete来动态分配和释放内存 C++的new的优点是 (1)、自动计算分配的自动返回指针类型,不必对返回指针进行转换 (2)、类型大小可不必指定 (3)、可以用new将分配的对象初始化 使用的语法格式 ointer varney var type delete pointer var 例4.6]为对象动态分配存储空间的实例EX46CPP
4.3 类构造的存储设计 前面已经说明了:类对象可以自动初始化;类能控制成员变量的内存分配。本节进一步 讨论一些特殊问题,静态存储和动态存储问题。 4.3.1 类的静态成员 在说明定义一个类时,可以使用 static 关键字指定静态成员(函数和数据)。 静态成员的特征是仅仅建立第一个对象的拷贝,并被该 类的所有对象共享。它改变了 每个对象在建立时都必须自己拷贝的情况。 静态成员函数是被一个类中所有对象共享的成员函数,不属于某个特定对象。因此,一 般只用于访问静态数据成员或全局变量。 调用静态成员函数,可以在其名字前加类名或对象名,但使用对象名容易令人产生混淆, 故不鼓励使用。 [例 4.5] 带有静态成员的类的实例 EX4_5.CPP 4.3.2 对象的动态存储分配 在 C++中,通常使用 new 和 delete 来动态分配和释放内存。 C++的 new 的优点是: (1)、自动计算分配的自动返回指针类型,不必对返回指针进行转换; (2)、类型大小可不必指定; (3)、可以用 new 将分配的对象初始化。 使用的语法格式: pointer_var=new var_type; delete pointer_var; [例 4.6] 为对象动态分配存储空间的实例 EX4_6.CPP