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;
}

运行结果:

三、结果解析

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

猜你喜欢

转载自www.cnblogs.com/ningningning/p/11605602.html