[Resumen de aprendizaje de análisis profundo de C ++] 25 tipos de variables miembro estáticas

[Resumen de aprendizaje de análisis profundo de C ++] 25 tipos de variables miembro estáticas

Código de autor Allen , por favor indique la fuente


1. Variables miembro

  • Puede acceder a las variables miembro públicas por nombre de objeto
  • Las variables miembro de cada objeto son únicas.
  • Las variables miembro no se pueden compartir entre objetos

2. Nueva demanda

  • Cuente el número de objetos de una clase determinada durante la ejecución del programa.
  • Garantizar la seguridad del programa (no se pueden usar variables globales)
  • El número de objetos actuales se puede obtener en cualquier momento.

Intento de solución (solución fallida)

#include <stdio.h>

class Test
{
private:
    int mCount;
public:
    Test() : mCount(0)
    {
        mCount++;
    }
    ~Test()
    {
        --mCount;
    }
    int getCount()
    {
        return mCount;
    }
};


Test gTest;


int main()
{
    Test t1;
    Test t2;
    
    printf("count = %d\n", gTest.getCount());
    printf("count = %d\n", t1.getCount());
    printf("count = %d\n", t2.getCount());
    
    return 0;
}

3. Variables miembro estáticas: comenzar a introducir nuevos conceptos
en C ++ puede definir variables miembro estáticas

  • Las variables miembro estáticas pertenecen a toda la clase.
  • La vida útil de las variables miembro estáticas no depende de ningún objeto.
  • Puede acceder directamente a las variables miembro estáticas públicas por nombre de clase
  • Variables miembro estáticas de todos los objetos que comparten clases
  • Se puede acceder a las variables miembro estáticas públicas por nombre de objeto

Características de las variables miembro estáticas.

  • Modificado directamente por la palabra clave estática en el momento de la definición
  • Las variables miembro estáticas deben asignarse por separado fuera de la clase
  • Las variables miembro estáticas se encuentran en el área de datos global dentro del programa

Reglas gramaticales:

  • Escriba ClassName :: VarName = value;

Uso de variables miembro estáticas

#include <stdio.h>

class Test
{
private:
    static int cCount;
public:
    Test()
    {
        cCount++;
    }
    ~Test()
    {
        --cCount;
    }
    int getCount()
    {
        return cCount;
    }
};


int Test::cCount = 0; //需要在类的外部单独定义,隶属于test


Test gTest;


int main()
{
    Test t1;
    Test t2;
    
    printf("count = %d\n", gTest.getCount());
    printf("count = %d\n", t1.getCount());
    printf("count = %d\n", t2.getCount());
    
    Test* pt = new Test();  //指向堆上的一个指针对象,动态生成,触发构造函数就 ++,输出为4
    
    printf("count = %d\n", pt->getCount());
    
    delete pt;
    
    printf("count = %d\n", gTest.getCount());
    
    return 0;
}

Resumen
Las variables miembro estáticas se pueden definir a través de la clave estática en la clase.
Las variables miembro estáticas pertenecen a todas las clases.
Cada objeto puede acceder a las variables miembro estáticas.
Las variables miembro estáticas se asignan en el área de datos global
. La vida de las variables miembro estáticas es el tiempo de ejecución del programa

Publicado 315 artículos originales · elogiado 937 · 650,000 visitas

Supongo que te gusta

Origin blog.csdn.net/super828/article/details/94708074
Recomendado
Clasificación