您的位置:首页 > 编程语言 > C语言/C++

C++静态成员的应用

2015-07-16 19:15 302 查看
当在类外部定义静态成员时,不能重复使用static关键字

静态成员函数不包含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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: