C++类中的静态成员与静态函数
来源:互联网 发布:手机怎样删除淘宝评论 编辑:程序博客网 时间:2024/06/13 11:06
C++类中的静态成员有一个非常好的功能,那就是无论类定义了多少个对象,这些对象始终都共同使用这一个静态成员
例如:
class A {
public:
static int num;
A(){num++}
}
int A::num=0;
就会有如下效果:
A a,b,c,d;
cout<<a.num<<","<<b.num<<","<<c.num<<","<<d.num 输出 4,4,4,4
可以看出,在每个对象中的num成员都只有一个副本。在内存中也是如此,初始化abcd时并没有分配新的内存。
在使用静态成员的过程中还有以下几点注意:
1.num不可以在类中初始化,更不可以在构造函数或构造函数初始化表中初始化。必须在类外初始化。方法是:int A::num=0;
此时不能有对象被定义,也就是说先定义num才可以定义a b等
2.如果num为public成员,那么任何时候都可以这样调用它 A::num 当然 a.num也可以
对于静态成员函数,它的特点和静态数据成员相似但也有不同:
class A{
public:
int num;
A() {num++}
static int p() {return num; } }//wrong
}
1.可以在类中定义, 这一点与静态数据成员不同。
2.若p()为public成员,则可以这样调用A::p()。这一点与静态数据成员相同。
3.静态成员函数不属于任何一个特定的对象,所以不存在隐含的this指针。如果要在函数中访问某个特定的对象的成员,必须结合使用操作符“.”或“->”来显示地制定所属对象。
4上面所给的程序是错误的因为num不属于所有的对象。如果num是静态的则可以。静态成员函数常用来操作静态数据成员。
- C++类中的静态成员与静态函数
- 类中的静态成员,静态函数
- c++中的静态成员变量与静态成员函数
- C++ 中的静态成员函数与静态成员变量
- 类中的静态成员函数
- c++:静态函数成员与静态数据成员
- 3-6 静态数据成员与静态成员函数(c++)
- C++:静态类成员函数
- C++---类中的静态成员
- 静态成员与静态函数
- 静态成员与静态函数
- C++/Java__中类模板中的静态成员变量和静态成员函数
- [C++] 静态成员函数
- C++中的类静态成员和静态成员函数
- C++中的类静态成员和静态成员函数
- c++类中的静态成员函数和静态成员变量
- C++中的类静态成员及静态成员函数
- 类中的静态成员变量和静态成员函数
- 一个有关typedef的找错题以及typedef详解
- 东风汽车股份有限公司MES实施案例
- 【一手笔经】趋势科技2014校招笔试
- 基于OpenCV的PHP图像人脸识别技术
- OCP-1Z0-053-V12.02-298题
- C++类中的静态成员与静态函数
- Java学习第四课 类的继承与多态特性
- Web 设计:实现干净代码的12条定律
- 国内著名互联网企业PHP笔试题
- fork()输出
- 锻炼身体是实现目标的基础
- MAC下邮件客户端操作——解决无法登陆GMail IMAP服务器
- CodeIgniter 入门
- KVO/KVC做了简单的介绍