Partage de mémoire entre classes
Bonjour,
une petite question en C++ pour laquelle je ne trouve pas de réponse sur Internet, pourriez-vous m'aider ?
1. J'ai un main dans lequel j'alloue plusieurs mémoires qui seront partagées par tout mon programme (ici un exemple avec listLoc).
Code:
1 2 3 4 5 6 7 8 9
|
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {
// Create memory
listLocalization * listLoc = new listLocalization();
// Build central widget
MainWindow::buildCentralWidget(listLoc);
} |
2. J'ai une fonction qui crée des onglets (Qt). Ces onglets sont des classes et auront besoin d'accéder à listLoc (un exemple ici).
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
void MainWindow::buildCentralWidget(listLocalization * listLoc) {
// Add central widget
mainWidget = new QTabWidget();
// Create first tab
tab1 = new tabLocalization(mainWidget);
// Add tabs
mainWidget->addTab(tab1, tr("&Localization (database)"));
// Define central layout
setCentralWidget(mainWidget);
} |
Comment est-ce que je peux donner accès à ma mémoire listLoc à la classe tabLocalization ?
Une solution à laquelle je pense serait de rajouter un pointer dans la classe tabLocalization:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
class tabLocalization : public QWidget {
Q_OBJECT
public:
explicit tabLocalization(QWidget *parent = 0, listLocalization * listLoc);
~tabLocalization();
private:
listLocalization * listPtr;
} |
Et de faire pointer listPtr vers listLoc dans le constructeur.
Est-ce qu'il existe une façon plus simple ou propre de faire ce que je souhaite ?
Merci pour votre réponse !