我喜欢宁宁宁

导航

C++语言程序化设计——第三次作业

C++语言程序化设计——第三次作业

第五章知识重难点剖析

一、知识点——类的静态成员

定义:

静态成员,指的是在c++类中声明成员时可以加上static关键字,这样声明的成员就叫做静态成员(包括数据成员和成员函数)。即声明为static的类成员或者成员函数便能在类的范围内同享。

——来源:百度百科·静态成员

目的:

解决同一个类的不同对象之间数据和函数共享问题

优点:

可以兼顾数据的共享与保护

静态数据成员

静态数据成员具有静态生存期。由于静态数据成员不属于任何一个对象,因此可以通过类名对它进行访问,一般的用法是“类名::标识符”。

静态函数成员

静态函数成员可以直接访问该类的静态数据和函数成员。而访问非静态成员,必须通过对象名。

二、代码实例——具有静态数据和函数成员的Point类

class Point{ //Point类定义
public:
Point(int x=0,int y=0):x(x),y(y){
count++;
}

Point(Point &p){
x=p.x;
y=p.y;
count++;
}

~Point(){count--;}
int getX(){return x;}
int getY(){return y;}

static void showCount(){ //静态函数成员
cout<<" Object count="<<count<<endl;
}

private:
int x,y;
static int count; //静态数据成员
};

int Point::count=0; //静态函数成员的定义和初始化,直接使用类名限定

int main(){
Point a(4,5);
cout<<"Point A: "<<a.getX()<<","<<a.getY();
Point::showCount();//静态函数成员的调用,不依赖于任何对象

Point b(a);
cout<<"Point B: "<<b.getX()<<","<<b.getY();
Point::showCount();//同上,不依赖于任何对象

return 0;
}

运行结果:

三、结果解析

实验结果证明,使用类的静态成员,很好的解决了不同对象之间数据和函数共享问题

posted on 2019-09-29 00:24  我喜欢宁宁宁  阅读(246)  评论(0)    收藏  举报