C++静态成员的应用
2015-07-16 19:15
302 查看
当在类外部定义静态成员时,不能重复使用static关键字
静态成员函数不包含this指针(无论是显示还是隐式使用)
静态成员可以通过类对象进行访问,也可以通过类进行访问
静态成员不是由构造函数初始化的,一般来说不能在类的内部初始化静态成员
静态数据成员定义在任何函数之外,且只能被定义一次
在定义静态数据成员时,通过类限定符可以访问该静态数据成员,无论该静态数据成员是public、protected还是private,但是只能在定义时这样做
静态数据成员的类型可以是它所属于的类类型,而非静态数据成员只能声明它所属类的指针或引用
.cpp文件
来自为知笔记(Wiz)
静态成员函数不包含this指针(无论是显示还是隐式使用)
静态成员可以通过类对象进行访问,也可以通过类进行访问
静态成员不是由构造函数初始化的,一般来说不能在类的内部初始化静态成员
静态数据成员定义在任何函数之外,且只能被定义一次
在定义静态数据成员时,通过类限定符可以访问该静态数据成员,无论该静态数据成员是public、protected还是private,但是只能在定义时这样做
静态数据成员的类型可以是它所属于的类类型,而非静态数据成员只能声明它所属类的指针或引用
#ifndef MAIN_H_INCLUDED
#define MAIN_H_INCLUDED
#include<iostream>
usingnamespace std;
classClassTest
{
public:
staticint getValue();
private:
staticint value /*= 1*/;
};
#endif// MAIN_H_INCLUDED
.cpp文件
#include"main.h"
/**< 对于静态数据成员一般不能在类内进行初始化 */
/**< 若要在类内进行初始化,则要求静态成员必须是常量表达式 */
intClassTest::value =2;//在定义时,尽管value是private类型,依然可以通过类限定符进行访问
intClassTest::getValue()
{
return value;
}
int main()
{
ClassTest classTest;
cout << classTest.getValue()<< endl;
/**< 可以使用类名直接访问静态成员,在类外不能访问private成员 */
//cout << ClassTest::value << endl;/**< 错误,因为value是private */
cout <<ClassTest::getValue()<< endl;
return0;
}
来自为知笔记(Wiz)
相关文章推荐
- C++ const限定符
- C++ 虚函数及重载、重定义、重写
- c++中const用法总结
- C/C++之static
- 黑马程序员------C语言中交换两个变量的值
- C++之插入迭代器
- C++11之auto和decltype
- C++ 类型转换运算符
- C++之构造函数的继承
- C语言--程序设计基础——7、8章
- C++ 必须使用初始化列表
- C++ typeid
- C++全局函数与成员函数的区别
- 对dispatch_async到主线程的逻辑封装成C/C++接口类型
- C++ 连接Mysql数据库
- C++DLL
- 黑马程序员-C语言基础知识-运算符与表达式
- c++.primer.plus第五版第八章编程练习答案
- c++.primer.plus第五版第七章编程练习答案
- C++读取配置文件内中的数组