Static类成员
来源:互联网 发布:java商城项目源码 编辑:程序博客网 时间:2024/05/17 07:56
static类数据成员,即属于类的一种服务,可以在类没有实例对象的时候调用。所有类的对象共享一个副本,不像非static数据成员一个,每个对象维护着各自的副本。通常static 数据成员定义成private,通过调用static函数来访问。声明static数据成员时需要注意的一点就是如果没有提供默认的构造函数,则相应的static成员就需要在具体的.cpp文件中定义并声明,否则程序无法通过编译。
static数据成员或staic成员函数在头文件中定义需要关键字static,而源文件中数据成员的初始化和成员函数的定义不需要再写static。否则编译不通过
例:头文件 Employee.h
class Employee{
public:
Employee(const string &, const string &);
static int getCount();
~Employee();
private:
string firstName;
string lastName;
static int count;// 静态数据成员前需加static,若没有提供默认的构造函数,则需要自己初始化,否则不通过编译};
----------------------------------------------------------------------------
源文件Employee.cpp
int Employee::count = 0;//静态成员初始化为0
int Employee::getCount()//静态函数头文件中声明static,而源文件中不必要添写
{
return count;
}
总结:静态数据成员、静态成员函数独立于具体的对象而存在。作为类的属性而存在,类可以直接访问。如类Employee要访问静态成员函数,则可以通过二元域作用符来访问:Employee::count;//count为静态数据成员
常见编程错误:
1.在static成员函数中使用this指针是一个编译错误,原因为:static成员函数独立于对象而存在,而this指针是指向具体对象的指针,故无法在static函数中使用。
2.将static成员函数声明为const是一个编译错误,const 限定符指示函数不能修改对象的状态。而static函数成员独立于类的任何对象存在,而允许被修改。
转自我的个人技术网站
- Static类成员
- 类的static成员
- 读书笔记--static类成员
- 类static成员
- 类static成员
- 类的static成员
- 类的static成员
- 关于static类成员
- static 类成员
- static类成员
- Static类成员
- Static类成员(二)
- Static类成员
- C++ static类成员
- static类成员
- static类成员
- c++类static成员
- static类成员
- 动态内存管理
- 一叶知秋:“安全“的野指针、 static函数、成员函数、this 指针、gcc编译器、name mangling
- android编程之图片剪裁
- error LNK2019: unresolved external symbol
- struts1.x struts-config.xml配置详解
- Static类成员
- struts2.0中struts.xml配置文件详解
- Facebook人才流失加剧 外患未解内忧层出
- IE(IE6/IE7/IE8)支持HTML5标签
- Ubuntu 升级VisualBox后无法启动 Kernel driver not installed (rc=-1908)
- 成员初始化器
- 《研磨struts2》 系列文章汇总贴
- 【网站性能指南】(三)奠基石-基础建设
- Socket粘包问题