本文主要是介绍c++的静态变化!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
静态成员
对于非静态成员,一个类的每个对象都自己存有一个副本,每个对象根据自己拥有的非静态的数据成员来区别于其他对象。而静态成员则解决了同一个类的多个对象之间数据和函数的共享问题。
静态数据成员
静态数据成员的作用是:实现同一类的不同对象之间的数据共享。
#include<IOSTREAM>
using namespace std;
class Point
{
public:
Point(int xx=0,int yy=0,int zz=0 ):X(xx),Y(yy),Z(zz) //Point的构造函数,每次实例化对象时,静态变量count都自动加1
{
count++;
}
void Display() //输出类点的坐标和此类实例化的对象的个数
{
cout《"the point is("《X《','《Y《','《Z《')'《ENDL; pre < } 0;
return p2.Display();
p1.Display();
p1(1,2,3),p2(4,5,6);
Point { main()
int 静态数据成员初始化(注意初始化时前面不加static) Point::count="0;" };
定义的静态成员,用来计算此类实例化对象的个数 count;
static X,Y,Z; private: ?《endl; objects. point ?《count《? are cout《?there><BR>
<P></P>
<P>此例中,定义了静态数据成员count来计算实例化的对象的数目。在访问count时,因为count是共享数据,所以,count是一个类和此类示例化的对象都可以访问的数据成员,这很像计算机中的文件共享,只要把文件放在一台服务器上,与之相连的从机都可以访问。访问静态数据成员的过程和访问共享文件的过程很像,而且存储过程也雷同。静态数据成员是存储在类中的,类比文件存储在服务器上。</P>
<P><BR>
</P>
<H2>静态成员函数</H2>
<P> 静态成员函数可以直接访问类中说明的静态成员,但不能直接访问类中说明的非静态成员。若要访问非静态成员时,必须通过参数传递的方式得到相应的对象,再通过对象进行访问。
using namespace std;
class Point
{
public:
Point(int xx=0,int yy=0,int zz=0):X(xx),Y(yy),Z(zz)
{
count++;
}
static void Display(Point&p); //声明静态成员函数
private:
int X,Y,Z;
static int count; //声明静态的数据成员
};
void Point::Display(Point& p) //将Display声明为静态成员函数,因此必须通过参数p来访问非静态成员X,Y,Z.
{
cout《"the point is("《P.X《","《P.Y《","《P.Z《")"《ENDL; pre < } 0;
return p1(1,2,3),p2(4,5,6);
Point { main() int Point::count="0;" point ?《count《? are cout《?there Point::Display(p2);
静态成员函数的访问可以通过类名进行,也可以通过对象进行访问。 Point::Display(p1);
这篇关于c++的静态变化!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!