码迷,mamicode.com
首页 > 其他好文 > 详细

类成员函数[转]

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

标签:http   color   width   数据   代码   line   

类成员函数

除了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   color   width   数据   代码   line   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!