19/02/10 0:43
streghetta
Sono nuova del forum e da poco mi sono avvicinata al C++.
Ho dato uno sguardo ai vari programmi messi a disposizione degli utenti e la mia attenzione si è soffermata su questo: Calcolatrice Light 0.2.
Ci sono però delle cose che non ho capito e vorrei chiedervi se foste così gentili da aiutarmi.
Vi posto il programma nel caso non lo trovaste:
Adesso,ciò che non ho capito è...........nella definizione della classe calcolatrice,double y rappresenta un tipo double;char y2[25] rappresenta un array di oggetti di tipo char(correggetemi se sbaglio!).A questo punto,dopo public,non dovrebbe esserci un costruttore o viene creato per default??e inoltre,perchè il distruttore è così dichiarato? ~calcolatrice(){delete operazione;}...non bastava scrivere solo ~calcolatrice()??
e in ultimo...
char *operazione, x2[25];...cosa significa precisamente questa istruzione?perchè c'è il puntatore??
scusatemi per tutte queste domande ma non sono pratica e scusatemi anche per eventuali errori se dovessero esserci...
EDIT by HeDo: Codice non racchiuso tra tag code
Ho dato uno sguardo ai vari programmi messi a disposizione degli utenti e la mia attenzione si è soffermata su questo: Calcolatrice Light 0.2.
Ci sono però delle cose che non ho capito e vorrei chiedervi se foste così gentili da aiutarmi.
Vi posto il programma nel caso non lo trovaste:
#include <iostream> #include <cmath> using namespace std; class calcolatrice { double y; char y2[25]; public: ~calcolatrice(){delete operazione;} double x; char *operazione, x2[25]; double moltiplica(); double dividi(); double addiziona(); double sottrai(); double potenza(); double radice (); }; int main() { double ris; char operatore; calcolatrice calc; calc.operazione = new char[25]; cout << "\n# Calcolatrice Light, versione Console\n"; cout << "# Autore: __GiReX__\n"; cout << "# Linguaggio: C++\n\n\n"; /* USAGE */ cout << "# USAGE: Inserire in ordine: Primo Numero - Operatore - Secondo Numero"; cout << "\n# Operatori:"; cout << "\n# * / + - = Mol - Div - Add - Sott"; cout << "\n# ^ = Potenza"; cout << "\n# R = Radice"; while(1) { cout << "\n\n\nPrimo numero:\t"; cin >> calc.x2; calc.x = atof(calc.x2); fflush(stdin); cout << "Operatore:\t"; cin >> operatore; fflush(stdin); switch(operatore) { case '+': ris = calc.addiziona(); break; case '-': ris = calc.sottrai(); break; case '*': ris = calc.moltiplica(); break; case '/': ris = calc.dividi(); break; case '^': ris = calc.potenza(); break; case 'R': ris = calc.radice(); break; default: cout << "\nOperatore NON valido"; continue; } cout << "\n\nIl risultato della " << calc.operazione << " e': " << ris; fflush(stdin); cin.ignore(); } return 0; } double calcolatrice::addiziona() { cout << "Secondo numero:\t"; cin >> y2; y = atof(y2); operazione = "addizione"; fflush(stdin); return (x + y); } double calcolatrice::sottrai() { cout << "Secondo numero:\t"; cin >> y2; y = atof(y2); operazione = "sottrazione"; fflush(stdin); return (x - y); } double calcolatrice::moltiplica() { cout << "Secondo numero:\t"; cin >> y2; y = atof(y2); operazione = "moltiplicazione"; fflush(stdin); return (x * y); } double calcolatrice::dividi() { cout << "Secondo numero:\t"; cin >> y2; y = atof(y2); operazione = "divisione"; fflush(stdin); return (x / y); } double calcolatrice::potenza() { cout << "Esponente:\t"; cin >> y2; y = atof(y2); operazione = "potenza"; fflush(stdin); return (pow(x, y)); } double calcolatrice::radice() { cout << "Radicando:\t"; cin >> y2; y = atof(y2); operazione = "radice"; fflush(stdin); return (pow(x, 1.0/y)); }
Adesso,ciò che non ho capito è...........nella definizione della classe calcolatrice,double y rappresenta un tipo double;char y2[25] rappresenta un array di oggetti di tipo char(correggetemi se sbaglio!).A questo punto,dopo public,non dovrebbe esserci un costruttore o viene creato per default??e inoltre,perchè il distruttore è così dichiarato? ~calcolatrice(){delete operazione;}...non bastava scrivere solo ~calcolatrice()??
e in ultimo...
char *operazione, x2[25];...cosa significa precisamente questa istruzione?perchè c'è il puntatore??
scusatemi per tutte queste domande ma non sono pratica e scusatemi anche per eventuali errori se dovessero esserci...
EDIT by HeDo: Codice non racchiuso tra tag code
Ultima modifica effettuata da HeDo 19/02/10 8:18
aaa