日期:2011-03-22 13:55:00 来源:本站整理
<b>C++类静态数据成员与类静态成员函数</b>[VC/C++编程]
本文“<b>C++类静态数据成员与类静态成员函数</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在没有报告本章内容之前假如我们想要在一个范围内同享某一个数据,那么我们会设立全局对象,但面向对象的程序是由对象构成的,我们若何才能在类范围内同享数据呢?
这个问题就是本章的重点:
声明为static的类成员大概成员函数便能在类的范围内共同享,我们把这样的成员称做静态成员和静态成员函数.
下面我们用几个实例来阐明这个问题,类的成员需求保护,普通情形下为了不违反类的封装特点,我们是把类成员设置为protected(保护状况)的,但是我们为了简化代码,使要阐明的问题更为直观,更简单理解,我们在此处都设置为public.
以下程序我们来做一个模拟拜候的例子,在程序中,每成立一个对象我们设置的类静态成员变自动加一,代码以下:
#include<iostream>
usingnamespacestd;
classInternet
{
public:
Internet(char*name,char*address)
{
strcpy(Internet::name,name);
strcpy(Internet::address,address);
count++;
}
staticvoidInternet::Sc()//静态成员函数
{
cout<<count<<endl;
}
Internet&Rq();
public:
charname[20];
charaddress[20];
staticintcount;//这里假如写成staticintcount=0;就是错误的
};
Internet&Internet::Rq()//返回引用的成员函数
{
return*this;
}
intInternet::count=0;//静态成员的初始化
voidvist()
{
Interneta1("中国软件开辟实行室","www.cndev-lab.com");
Interneta2("中国软件开辟实行室","www.cndev-lab.com");
}
voidfn(Internet&s)
{
cout<<s.Rq().count;
}
voidmain()
{
cout<<Internet::count<<endl;//静态成员值的输出
vist();
Internet::Sc();//静态成员函数的调用
Internetb("中国软件开辟实行室","www.cndev-lab.com");
Internet::Sc();
fn(b);
cin.get();
}
上面代码我们用了几种常用的方法成立对象,当成立新对象并调用其构造函数的时刻,静态成员cout便运行加1操作,静态成员的初始化应当在主函数调用之前,并且不能在类的声明中呈现,通过运行历程的察看我们发现,静态成员count的状况并不会随着一个新的对象的新建而重新定义,尽而我们理解到类的静态成员是属于类的而不是属于哪一个对象的,所以静态成员的利用应当是类名称加域辨别符加成员名称的,在上面的代码中就是Internet::count,固然我们仍旧可以利用对象名加点操作标记加成员名称的方法利用,但是不举荐的,静态态类成员的特点就是属于类而不专属于某一个对象.
以上是“<b>C++类静态数据成员与类静态成员函数</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论