venerdì 5 aprile 2013

Condividere variabili tra piu' classi (C++/Qt)

A causa dell'incapsulamento della programmazione ad oggetti non banale condividere dati tra piu' classi.

Un metodo per effettuare questa operazione e' quella di creare una classe apposita che gestisca le variabili con funzioni apposite per settare e recuperare il valore delle variabili

per esempio si puo' fare (chiamando la nuova classe variabili)
variabili.h
-----------------------------------------------------
#ifndef VARIABILI_H
#define VARIABILI_H

class variabili
{
public:
    variabili();
    void set_id(int id);
    int get_id();
private:
    static int m_int;
};

#endif // VARIABILI_H
-----------------------------------------------------

variabili.cpp
-----------------------------------------------------
#include "variabili.h"

int variabili::m_int;

variabili::variabili()
{

}
int variabili::get_id()
{
   return m_int;
}
void variabili::set_id(int id)
{
    m_int = id;
}
-----------------------------------------------------

per settare e leggere il valore della variabile condivisa nelle due classi si puo' operare come segue

Classe 1 (setta la variabile)
-----------------------------------------------------
#include <variabili.h>
.
.
.
variabili *myid = new variabili;
myid->set_id(2);
//int t1 = myid->get_id();
//qDebug() << "Main" << t1;
delete myid;
-----------------------------------------------------

Classe 2 (legge la variabile settata dalla Classe 1)
-----------------------------------------------------
#include <variabili.h>
.
.
.
variabili *myid = new variabili;
int t1 = myid->get_id();
//qDebug() << "Dialog" <<  t1;
delete myid;
-----------------------------------------------------