zoukankan      html  css  js  c++  java
  • 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;
    }
    

    运行结果:

    三、结果解析

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

  • 相关阅读:
    30-Transformation(HDU4578)-区间线段树(复杂)
    87-区间线段树(板子)--那个苑区的人最瘦
    86-区间线段树-模板
    1-2018-3-2小球碰撞
    85-取石子-威佐夫博弈
    83-取石子-尼姆博弈
    82-珠子染色-置换群
    2018.3.29 设计模式之单例模式详解
    2018.3.27 Mac 配置Tomcat
    2018.3.26 Linux下学习命令
  • 原文地址:https://www.cnblogs.com/ningningning/p/11605602.html
Copyright © 2011-2022 走看看