Oppure

Loading
28/09/12 16:52
Jenosky
Salve ragazzi.
Il mio problema è il seguente:
ho creato una classe che, per svolgere alcune operazioni, usa gli elementi di un'altra classe.
Come devo inserire i vari header in un progetto?
Vi ringrazio in anticipo e, se vi serve, vi mostro gli header delle due classi.

Ho provato ad inserire nella classe primaria la classe secondaria inserendo:

#include "classesecondaria.h"

ma la classe primaria non mi riconosce gli oggetti della secondaria :(

Spero di essere stato chiaro :)
aaa
28/09/12 17:03
Mostraci il codice ...
28/09/12 17:08
anthony015
no, non sei stato molto chiaro :)
forse vorresti accedere alle variabili e/o metodi privati di un'altra classe?
se così è basta inserire all'interno della classe alla quale si vuole accedere un
friend class AltraClasse;


ma molto probabilmente non è questo quello che intendevi
aaa
28/09/12 17:14
Jenosky
Subito!
Questo è il codice della classe che voglio includere:
e qui invece è dove voglio includerlo:
#ifndef _matrix_H_
#define _matrix_H_
#include <string>
#include <stdlib.h>
#include <iostream>


using namespace std;


class matrix {
      public:
             float** mat;
             int m,n;
             matrix (int righe=2, int colonne=2);
             void expmat (int righe, int colonne); //ridimensiona la matrice
             void printmat (); //stampa la matrice
             void nullmat (); //pone uguale a zero tutti gli elementi della matrice
             ~matrix(); 
           };

#endif

void copymat(matrix &A, matrix B); //copia il contenuto di B in A
void prodmat (matrix A, matrix B, matrix &C); //fa il prodotto righe per colonne tra A e B e da come risultato C

come potete vedere ho inserito:
#include "matrix.h"
ed ho creato una variabile di tipo matrix.
#include <iostream>
#include <fstream>
#include <string>
#include <math.h>
#include "matrix.h"


using namespace std;

class chain {
      public:
             matrix L();
             chain();
             float T[4][4];
             void addharm ();
      private:
              
              };


Quando poi vado a gestire il main...
#include <iostream>
#include <stdlib.h>
#include "chain.h"
#include "matrix.h"

using namespace std;

int main() {
chain A;
cout<<A.L.mat[2][2];
A.addharm();

system("PAUSE");
return 0;
};

mi da questo problema:
dovrebbe visualizzarmi l'elemento della matrice (oggetto classe incluse) dell'oggetto chain ma ciò non accade.
Inoltre se provo ad usare la variabile matrix L nel file chain.cpp mi dice che non è inizializzata...
che sbaglio?

nb: le due classi, prese da sole, funzionano bene, quando provo a combinarle non riesco :(
Ultima modifica effettuata da Jenosky 28/09/12 17:32
aaa
28/09/12 17:34
Non

matrix L();

ma

matrix L;
28/09/12 17:43
Jenosky
Nessuno ha la mia stima!
:k:
Grazie davvero! Grazie!
:)
Che errore stupido! Pensavo di poter inizializzare con dei parametri la matrice già nell'altra classe.
Ti ringrazio, mi hai tolto un peso dalla tesi!
aaa