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

    运行结果:

    三、结果解析

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

  • 相关阅读:
    手势模型和Angular Material的实现
    拟物设计和Angular的实现
    深入探索AngularJS
    自己动手做Web框架—MVC+Front Controller
    学习《CSS选择器Level-4》不完全版
    【基础】固定列宽的表格及示例演示
    使用min-content实现容器宽度自适应于内部元素
    【基础】CSS实现多重边框的5种方式
    【图片版】学习CSS网格布局
    【基础】EM 还是 REM?这是一个问题!
  • 原文地址:https://www.cnblogs.com/ningningning/p/11605602.html
Copyright © 2011-2022 走看看