(C++) Miembros de clase tipo static

Conforme se crea cada objeto de clase obtiene su propio bloque de memoria para sus miembros de datos. EN algunos casos, sin embargo, es conveniente para cada instanciación que una clase compartir la misma ubicación de memoria.

#include 
using namespace std;

class Empleado{
    private:
        static double tasa_imp;
        static int id_ant;
        int id;
    public:
        Empleado();
        void request();
};

// Definición del miembro static
double Empleado::tasa_imp = 0.21;
int Empleado::id_ant = 0;

// Seccion de implementación

Empleado::Empleado(){
    id = id_ant;
    id_ant++;
}

void Empleado::request(){
    cout << "El empleado con ID=" << id << " tiene una tasa de impuesto de " << tasa_imp << endl;
    return;
}

int main(){
    Empleado a, b, c, d, f, g;
    a.request();
    b.request();
    c.request();
    d.request();
    f.request();
    g.request();
    
    return 0;
}

La salida es
dijo:El empleado con ID=0 tiene una tasa de gabela de 0.21
El empleado con ID=1 tiene una tasa de gabela de 0.21
El empleado con ID=2 tiene una tasa de gabela de 0.21
El empleado con ID=3 tiene una tasa de gabela de 0.21
El empleado con ID=4 tiene una tasa de gabela de 0.21
El empleado con ID=5 tiene una tasa de gabela de 0.21

ANTICRAP
QML Photo Viewer

http://doc.qt.nokia.com/4.7-snapshot/demos-declarative-photoviewer.html

Fuentes de Información

El contenido del post es de mi autoría, y/o, es un recopilación de distintas fuentes.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *