理论教育 面向对象程序设计-静态成员函数

面向对象程序设计-静态成员函数

时间:2023-10-25 理论教育 版权反馈
【摘要】:静态成员函数的说明需要在成员函数前面加说明符static。但在实际使用过程中,基本只使用静态成员函数,来操作静态数据成员。常用的静态成员的使用方法演示。通过使用静态数据成员描述学校信息,使各学生的学校信息保持一致。重点提示1.静态成员函数中不能调用非静态成员。

面向对象程序设计-静态成员函数

静态成员函数的说明需要在成员函数前面加说明符static。具体格式为:

static< 函数类型> < 成员函数名>(< 参数表>);

静态成员函数在实现时可以放在类体内,也可以放在类体外。

静态成员函数是属于整个类的,因此它具有两种引用方法:

< 类名> :: < 静态成员函数名>(< 参数表>)

或者

< 对象名> .< 静态成员函数名>(< 参数表>)

在静态成员函数中可以直接引用其静态成员,而引用非静态成员是需要用对象名进行引用。

在例4.1中对静态数据成员的说明和使用,在语法上是可行的,正确的。但在实际使用过程中,基本只使用静态成员函数,来操作静态数据成员。这样在概念的设置逻辑上,才是合适的。所以在引入静态数据成员概念后,例4.1的正确写法应改为如例4.2的程序。

【例4.2】常用的静态成员的使用方法演示。

该程序是一个简单的演示程序,在A 类中定义了一个静态数据成员b,为对比效果还有一个一般数据成员a,同时定义类一个公有的成员函数用于修改b的值。b在类外部进行了初始化。在主程序中,我们可以看到,先定义了两个对象a1,a2,然后马上输入a1,a2的属性a,同时分别用a1,a2引用了静态数据成员b,可以看到b的初始化值10;接着通过a1修改静态数据成员的值为11,接着通过类A 修改静态数据成员的值为12,再次通过a1,a2引用了静态数据成员b,可以看到其值发生了改变。

现在,我们可以定义一个学生类,其中包括学生姓名,年龄学校等信息。通过使用静态数据成员描述学校信息,使各学生的学校信息保持一致。(www.daowen.com)

重点提示

1.静态成员函数中不能调用非静态成员。

2.非静态成员函数中可以调用静态成员。因为静态成员属于类本身,在类的对象产生之前就已经存在了,所以在非静态成员函数中是可以调用静态成员的。

3.静态成员变量使用前必须先初始化,否则会在linker时出错。

程序运行结果:

张三 实验小学

李四 实验小学

张三 第一实验小学

李四 第一实验小学

再给一个利用类的静态成员变量和函数的例子以加深理解,这个例子建立一个学生类,每个学生类的对象将组成一个双向链表,用一个静态成员变量记录这个双向链表的表头,一个静态成员函数输出这个双向链表。

【例4.3】定义一个可存放学生对象的双向链表。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈