C++ Primer Plus学习笔记之静态成员

2014-11-24 12:19:54 · 作者: · 浏览: 1

C++ Primer Plus学习笔记之静态成员

关键字static可以用来说明一个类的成员(包括数据成员和成员函数),这样的成员被称为静态成员; 1,静态数据成员 在一个类中,若将一个数据说明前加上static,则该数据成为静态数据,静态数据成员被该类的所有对象共享。无论建立多少个该类的对象,都只有一个静态数据存储空间; 具体语法如下: 类型名 类名::静态数据成员[=常量表达式] 其中,常量表达式用于初始化类的静态数据成员; 静态数据成员属于类,而不属于对象,因为静态成员的存在是不依赖于某个具体的对象的。在这个意义下,在类对象不存在的情况下,我们也可以访问到类的静态成员。
2,静态成员函数 与静态数据成员一样,静态成员函数属于类而不是某个类对象;因此在类外调用一个共有的静态数据成员函数,不需要指明对象或者指向对象的指针,具体方式为: 类名::静态成员函数名(参数列表) 一般使用静态成员函数来访问静态数据成员; 若在静态成员函数中要访问非静态成员时,必须明确地指明该静态成员函数在哪个对象上操作,必须需要通过对象或者指向对象的指针进行,因此需要类类型作为静态成员函数的参数类型(出非使用全局对象);
#include
  
   

using namespace std;

class Integer
{
	public:
		void Display();
		static void Fun(int num1,int num2,Integer *ptr);
	private:
		int member_int;
		static int static_int;
};

int Integer::static_int=0;

void Integer::Fun(int num1,int num2,Integer *ptr)
{
	//member_int=num1;   错误,不知对哪个对象上的member_int进行操作
	ptr->member_int=num1;//正确
	static_int=num2;//正确
}

void Integer::Display()
{
	cout<<"member_int="<
   





<script type=" text="" avascript"="">
<script type="text/java script">BAIDU_CLB_fillSlot("771048");
点击复制链接 与好友分享! 回本站首页
<script> function copyToClipBoard(){ var clipBoardContent=document.title + '\r\n' + document.location; clipBoardContent+='\r\n'; window.clipboardData.setData("Text",clipBoardContent); alert("恭喜您!复制成功"); }
分享到: 更多
<script type="text/java script" id="bdshare_js" data="type=tools&uid=12732"> <script type="text/java script" id="bdshell_js"> <script type="text/java script"> var bds_config = {'snsKey':{'tsina':'2386826374','tqq':'5e544a8fdea646c5a5f3967871346eb8'}}; document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js cdnversion=" + Math.ceil(new Date()/3600000)