Buonasera ragazzi,
apro questa discussione perchè vorrei cercare di capire come si utilizzano piu classi per esempio devo realizzare una programma che mi permetta di gestire uno store. Ho tre classi:
- STORE
- APPLICAZIONE
- APPLICAZIONEINSTALLATA
Un oggetto store può contenere fino ad un massimo di 100 applicazioni. Ho pensato di utilizzare come dato membro un puntatore ad applicazione in modo da poter allocare dinamicamente la memoria solo che nell'implementazione del metodo aggiungi_app() non mi fa accedere ai dati dicendomi che sono privati (nonostante la classe sia friend). Anche se non sono sicuro questo sia il procedimento di esatto. Vi posto il codice se c'è qualcuno di voi che mi potrebbe spiegare dove sbaglio o che abbia idee migliore mi farebbe un gran piacere. qui il codice:
codice:
//applicazione.h
#ifndef APPLICAZIONE_H
#define APPLICAZIONE_h
#include <string>
using std::string;
class applicazione {
private:
long id;
string nome,descrizione;
int versione;
public:
applicazione(long i = 0, string n = " ", string d = " ", int v = 0):
id(i) , nome(n) , descrizione(d) , versione (v) {;}
void set_app(long, string, string, int) const;
};
#endif
codice:
//applicazione.cpp
#include "applicazione.h"
void applicazione::set_app(long i, string n, string d, int v){
id = i;
nome = n;
descrizione = d;
versione = v;
}
codice:
//store.h
#ifndef STORE_H
#define STORE_H
class applicazione;
class store {
friend class applicazione;
private:
applicazione* p;
public:
store() :
p(NULL) {;}
void aggiungi_app() const;
};
#endif
codice:
//store.cpp
#include <iostream>
#include <string>
#include "store.h"
#include "applicazione.h"
using namespace std;
void store::aggiungi_app()const{
p = new applicazione;
cout << "inserire id app: " << endl;
cin >> p->applicazione::id;
cout << "inserire nome app: " << endl;
cin >> p->nome;
cout << "inserire descrizione: " << endl;
cin >> p->descrizione;
cout << "inserire versione: " << endl;
cin >> p->versione;
}
codice:
//main.cpp
#include <iostream>
#include "applicazione.h"
#include "applicazioneinstallata.h"
#include "store.h"
using namespace std;
int main () {
applicazione app;
applicazioneinstallata appp;
store s;
s.aggiungi_app();
return 0;
}
grazie in anticipo