首页 > 其他 > 详细

类成员函数[转]

时间:2014-07-02 19:44:10      阅读:334      评论:0      收藏:0      [点我收藏+]

类成员函数

除了static数据成员,类还可以有static成员函数。静态成员函数只能访问其他的static成员,包括数据成员和成员函数。

例3-38

bubuko.com,布布扣

 

本例声明了一个内联的static成员函数getN。在例3-35中,我们知道对象和非静态成员函数(包括构造函数和析构函数)可以访问像n这样的static数据成员。在本例中,我们看到static成员函数也可以访问static数据成员。它们的差别是,非static成员函数既可以访问static数据成员,也可以访问非static数据成员;而static成员函数只能访问static成员。因此,以下代码包含了两个错误:

bubuko.com,布布扣

 

static成员函数getN只能访问static数据成员和static成员函数,而setST和st都是非static。像其他的成员函数一样,static成员函数既可以是inline函数,也可以是非inline函数。

假设类C拥有一个static数据成员sVar和一个static成员函数sMeth,它们都是公有的,如下所示:

bubuko.com,布布扣

 

有两种不同方式来访问类的static成员,我们既可以通过C的对象来访问,也可以直接通过类C来访问。

例3-39

bubuko.com,布布扣

bubuko.com,布布扣

本例展示了两种访问static成员的不同办法。当然,这样做违反了数据成员的信息隐藏原则,我们将sVar设为public仅仅是为了说明访问静态成员的语法。

访问static成员的首选方法是通过类直接访问。static成员毕竟是与类本身相关联,而不是与类的对象相关联。

我们作如下假定:

对象c属于类C。

成员函数om是C的非static成员函数。

成员函数cm是C的static成员函数。

那么,静态成员函数与非静态成员函数的区别如表3-2所示。

表3-2   类成员函数与对象成员函数的比较

bubuko.com,布布扣

 

类成员函数[转],布布扣,bubuko.com

类成员函数[转]

原文:http://www.cnblogs.com/MATU/p/3819695.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!