C 中的类静态成员和静态成员函数计算机二级考试
文章作者 100test 发表时间 2009:06:17 20:10:15
来源 100Test.Com百考试题网
编辑特别推荐:
全国计算机等级考试(等考)指定教材
全国计算机等级考试学习视频
全国计算机等级考试网上辅导招生
全国计算机等级考试时间及科目预告
百考试题教育全国计算机等级考试在线测试平台
全国计算机等级考试资料下载
全国计算机等级考试论坛
计算机等级考试四级应用题解析汇总
2009年下半年全国计算机二级考试报名时间从6月1日起已经开始报名。详情点击:2009年下半年全国计算机等级考试各地报名点汇总。2009年下半年全国计算机二级考试时间是2009年9月19日至23日。更多优质资料尽在百考试题论坛 百考试题在线题库。
(1)为什么需要类静态成员?
有时候某个类的多个对象需要访问一个全局对象,在这种情况下“提供一个全局对象”比“每个类都维持一个独立的数据成员”要更为有效。而类静态成员与全局变量相比,又有两点好处:(a)不存在与程序中其他全局名字冲突的可能性;(b)可设置为private,实现信息隐藏。
(2)类静态成员的特点
对于非静态数据成员,每个类对象都有自己的拷贝,而静态数据成员对每个类类型只有一个拷贝。由于静态数据成员分配在全局数据区,因此在程序开始运行时就必须存在,故静态数据成员的空间分配和初始化不可能在main函数或其他函数中完成(因而在局部类中也不允许出现静态数据成员)。这样一来,静态数据成员的空间分配和初始化只可能有以下三种途径:(a)类的头文件:这里有类的声明。但存在一个无法回避的问题:对于静态数据成员,在程序中也只能存在一个定义,而类的头文件可能被重复引用而出现重复定义;(b)main函数前的全局数据声明和定义处:这种方法也有问题,每一个使用该类的程序都必须在此处定义一下该类的静态成员,这是不现实的;(c)类定义的内部实现:这是最为理想的方式,引用时只需包含头文件即可。
#include "account.h"
double Account::_interestRate = 0.05
(3)类静态成员的定义
在对静态数据成员进行定义时有以下几点注意事项:(a)在类定义之外定义时,静态成员的名字必须被其类名限定修饰,前不可再添加static;(b)像int等有序类型的静态数据成员可在类定义中初始化,但仍需在类定义外进行定义,但此时已不能指定初始值;
(4) 类静态成员的访问:
在类的成员函数中可以直接访问该类的静态数据成员,而在非成员函数中可使用成员访问操作符或类名限定修饰的方式进行访问。
(5)静态成员函数:
静态成员函数无法访问属于具体类对象的非静态数据成员,也无法访问非静态成员函数,他只能访问静态数据成员和调用其余的静态成员函数。这样一来,就能防止类的非静态数据成员遭受窜改。静态成员函数没有this指针,任何在静态成员函数中显式或隐式地引用这个指针都将导致编译时刻错误。
2009年9月全国计算机等级考试时间及科目预告
2009年NCRE考试有新变化
2009年全国计算机等级考试-大纲
全国计算机等级考试历年真题及答案
2009年上半年全国计算机等级考试试题及答案