C++学习摘要之五:静态成员 .
2012-05-12 19:57
281 查看
第五章 静态成员
在一个类中还可以定义静态成员,但静态成员是所有对象公有的。静态成员分为静态数据成员和静态成员函数。
定义静态数据成员的语句格式如下:
class 类名
{
……
static 类型说明符 成员名;
……
};
静态数据成员是类的所有对象共享的成员。静态数据成员所占的空间不会随着对象的产生而分配,也不会随着对象的消失而回收。对静态数据成员的操作和类中一般数据成员的操作是不一样的,定义为私有的静态数据成员不能被外界所访问。静态数据成员可由任意访问权限许可的函数所访问。
由于静态数据成员是类的所有对象共享的,而不从属于任何一个具体对象,所以必须对类的静态数据成员进行初始化,但对它的初始化不能在类的构造函数中进行,其初始化语句应当写在程序的全局区域中,并且必须指明其数据类型与所属的类名,其初始化格式如下:
类型 类名::变量名=值;
对于在类的public部分说明的静态数据成员,在类的外部可以不使用成员函数而直接访问,但在使用时必须用类名指明所属的类,其访问格式为:
类名::静态数据成员名
对于在类的非public部分说明的静态数据成员,则只能由类的成员函数访问,其访问方法与访问类中普通数据成员的访问方法完全一样,但在类的外部不能访问。
class 类名
{
…
static 类型 函数名(形参)
{ 函数体 }
…
};
说明:
(1)类的静态成员函数只能访问类的静态数据成员,而不能访问类中的普通函数成员(非静态数据成员),因为普通数据成员只有类的对象存在时才有意义。
(2)静态成员函数与类相联系,而不与类的对象相联系,所以,在类的外部调用类中的公有静态成员函数,必须在其左面加上“类名::”,而不是通过对象名调用公有静态成员函数。在类的外部不能调用类中的私有静态成员函数。
在一个类中还可以定义静态成员,但静态成员是所有对象公有的。静态成员分为静态数据成员和静态成员函数。
1.静态数据成员
在类中定义静态数据成员的方法就是在该成员的前面加上关键字static。定义静态数据成员的语句格式如下:
class 类名
{
……
static 类型说明符 成员名;
……
};
静态数据成员是类的所有对象共享的成员。静态数据成员所占的空间不会随着对象的产生而分配,也不会随着对象的消失而回收。对静态数据成员的操作和类中一般数据成员的操作是不一样的,定义为私有的静态数据成员不能被外界所访问。静态数据成员可由任意访问权限许可的函数所访问。
由于静态数据成员是类的所有对象共享的,而不从属于任何一个具体对象,所以必须对类的静态数据成员进行初始化,但对它的初始化不能在类的构造函数中进行,其初始化语句应当写在程序的全局区域中,并且必须指明其数据类型与所属的类名,其初始化格式如下:
类型 类名::变量名=值;
对于在类的public部分说明的静态数据成员,在类的外部可以不使用成员函数而直接访问,但在使用时必须用类名指明所属的类,其访问格式为:
类名::静态数据成员名
对于在类的非public部分说明的静态数据成员,则只能由类的成员函数访问,其访问方法与访问类中普通数据成员的访问方法完全一样,但在类的外部不能访问。
[b]2.静态成员函数[/b]
静态成员函数的定义与一般成员函数的定义相同,只是在其前面冠以static关键字,其定义格式如下:class 类名
{
…
static 类型 函数名(形参)
{ 函数体 }
…
};
说明:
(1)类的静态成员函数只能访问类的静态数据成员,而不能访问类中的普通函数成员(非静态数据成员),因为普通数据成员只有类的对象存在时才有意义。
(2)静态成员函数与类相联系,而不与类的对象相联系,所以,在类的外部调用类中的公有静态成员函数,必须在其左面加上“类名::”,而不是通过对象名调用公有静态成员函数。在类的外部不能调用类中的私有静态成员函数。
相关文章推荐
- C++学习摘要之五:静态成员
- C++学习摘要之五:静态成员
- C++学习摘要之五:静态成员
- 【C++基础学习】关于C++静态成员函数和变量
- C++学习:static静态成员即static成员函数
- 【C++基础学习】关于C++静态成员函数和变量
- c++基础学习8-类的静态成员
- 将类成员函数作为线程入口函数——关于C++ 类静态成员的学习
- c++学习笔记(8.类的静态成员)
- Cocos2d-x 3.1.1 学习日志3--C++ 初始化类的常量数据成员、静态数据成员、常量静态数据成员
- [C++学习笔记]--析构函数、静态成员变量、静态成员函数
- C++学习笔记13 C++ 类的静态成员
- 学习C++(2)之类的静态成员及静态成员函数
- C++学习模板篇(静态数据成员与静态成员函数)
- C++学习之静态成员
- C++学习一静态成员与静态成员函数
- C++学习笔记1——静态成员
- C++ 学习之路(4):静态成员
- C++静态成员函数学习
- 嵌入式开发之C++基础学习笔记5--静态成员,友元,运算符重载,模板,文件流