Salve a tutti, avevo intenzione di realizzare un programma in C++ utilizzando una classe.
È la prima volta che ne utilizzo una ed infatti ho riscontrato alcuni problemi che spero voi riusciate a risolvermi, aiutandomi ad imparare![]()
Questa è la codifica:
I problemi in compilazione sono questi:codice:#include <iostream.h> using namespace std; class alunno { public: int materie,materia; float matrice[materie][3]; float GetMedia() { for(int i=0;i<3;i++) float media[materia]+=matrice[materia][i]; return media[materia]; } float TotalMedia() { for(int i=0;i<3;i++) { for(int k=0;k<materie;k++) float mediaTot+=matrice[materia][i]; } return mediaTot; } }; int main() { alunno pallino; cout << "Quante materie sono?" << endl; cin >> pallino.materie; cout << "Tra " << pallino.materie << "materie, con quale iniziamo? (indicare con 1 per la prima, 2 per la seconda e così via)" << endl; cin >> pallino.materia; for (int i=0;i<pallino.materie;i++) { switch(i) { case 0: cout << "Inserisci voto orale" << endl;break; case 1: cout << "Inserisci voto scritto" << endl;break; case 2: cout << "Inserisci voto pratico" << endl;break; default: continue; } cin >> pallino.matrice[pallino.materia][i]; } cout << "La media è " << GetMedia() << endl; return 0; }
Come potrei risolvere?codice:classe.cpp:6: error: invalid use of non-static data member ‘alunno::materie’ classe.cpp:7: error: from this location classe.cpp:7: error: array bound is not an integer constant classe.cpp: In member function ‘float alunno::GetMedia()’: classe.cpp:10: error: expected initializer before ‘+=’ token classe.cpp:11: error: ‘media’ was not declared in this scope classe.cpp: In member function ‘float alunno::TotalMedia()’: classe.cpp:17: error: expected initializer before ‘+=’ token classe.cpp:19: error: ‘mediaTot’ was not declared in this scope classe.cpp: In function ‘int main()’: classe.cpp:38: error: ‘class alunno’ has no member named ‘matrice’ classe.cpp:40: error: ‘GetMedia’ was not declared in this scope
Grazie a tutti per eventuali risposte!![]()

Rispondi quotando