zoukankan      html  css  js  c++  java
  • 关于c++中的静态成员变量

    下面通过1个例子来解释一下:

     1 #include <iostream>
     2 #include <string>
     3 using namespace std ;
     4 
     5 
     6 class student
     7 {
     8     private://把变量声明为私有的
     9     int num ;
    10     string name ;
    11     int math ;
    12     int english ;
    13     int total ;
    14     static string teacher;
    15     void cacu_total();
    16     
    17     public:
    18     void input_stu();
    19     void output_stu();
    20 };
    21 
    22 string student::teacher = "xiaoming";
    23 int main(int argc , char *argv[])
    24 {
    25     student stu1,stu2;
    26     student *pstu;
    27     pstu = new student ;
    28     stu1.input_stu();
    29     stu2.input_stu();
    30     pstu->input_stu();
    31     
    32     stu1.output_stu();
    33     stu2.output_stu();
    34     pstu->output_stu();
    35     delete pstu ;
    36     return 0;
    37 }

    对于上述代码的解释:定义了2个类的变量stu1 stu2 怎么对于他们的成员变量 

    比如说 stu1 的num name math等变量和stu2 的num name math等变量 是不同的变量

    而对于teacher这个成员变量, stu1 和stu2 是一样的,即在stu1中改变teacher的值 stu2中teacher的值也会改变

    因为他们占用的是同一块内存。

    可以这样理解 静态成员变量相当于是在类中定义一个全局变量,他不保存在每个对象的数据中,整个类只有1份

    还有一点需要特别注意,静态成员变量除了在类中声明外,还必须在外部明确定义

    就是上面的这一句:

    string student::teacher = "xiaoming";
  • 相关阅读:
    【Express系列】第3篇——接入mysql
    【Express系列】第2篇——主程序的改造
    【Express系列】第1篇——项目创建
    AngularJS内置指令
    node服务端搭建学习笔记
    生成ssh key
    webstorm的常用操作
    VSCode 常用插件
    php集成包
    composer安装特别慢的解决方案
  • 原文地址:https://www.cnblogs.com/tiantiantian-dianzi/p/5618419.html
Copyright © 2011-2022 走看看