Costruttori/distruttori. Sovraccarico degli operatori. Costruttori/distruttori. Necessità di un cotruttore
|
|
- Leo Oliva
- 6 anni fa
- Visualizzazioni
Transcript
1 Costruttori/distruttori. Sovraccarico degli operatori. Costruttori/distruttori Quando un oggetto viene allocato viene eseguita una routine di inizializzazione: il costruttore. Quando viene deallocato si esegue un distruttore Necessità di un cotruttore Ratio::Ratio(int n, int d) { Assign(n, d); void Ratio::Assign (int n, int d) { if (d!= 0) {num = n, den = d; else cout << "divisione per 0" << endl; Il costruttore mantiene l invariante il denominatore è sempre 0
2 Costruttori e oggetti statici class Ratio { costruttore public: Ratio (int n=0, int d=1) { num = n; den = d; private:... default ; Ratio a (7, 4); // a vale 7/4 Ratio b (7); // b vale 7/1 Ratio c; // c vale 0/1 Oggetti e valori Un oggetto può essere il valore di una funzione o di un metodo Già l ANSI-C consente di ritornare strutture Ratio Ratio::Sum (Ratio r) { Ratio q (num*r.den+den*r.num,den*r.den); return q; Costruttore di copia class Ratio { Costruttore di copia (= default) public: Ratio (int n=0, int d=1) { num = n; den = d; Ratio (const Ratio& r) { num = r.num; den = r.den; private:... ; Ratio a (2,3); Ratio b(a); // b è un clone di a
3 Costruttore di copia Il costruttore di copia viene invocato quando: si definisce un oggetto in termini di uno già definito: Ratio r Ratio(q); Nelle assegnazioni o inizializzazioni: Ratio r = q; si passa una argomento per valore ad una funzione quando una funzione restituisce un valore Costruttore di copia Il costruttore di copia viene invocato quando: si passa una argomento per valore ad una funzione Ratio (const Ratio& r) Il passaggio per riferimento è allora necessario Polinomi class Polinomio { public: Polinomio (int degree, double c[]); // Pre: c[] ha dimensione >= degree + 1 // Post: genera il polinomio di grado degree e // coefficienti c[0..degree] (in ordine decr. di grado) Polinomio (const Polinomio& p); // costr. di copia ~Polinomio (); // distruttore private: double* coefficienti;...
4 Polinomi Polinomio q (p); Questo si otterrebbe usando il costruttore di copia di default Polinomi Polinomio::Polinomio (const Polinomio& p) { degree = p.degree; coeff = new double[degree + 1]; for (int i = 0; i < degree + 1; i++) coeff[i] = p.coeff[i]; Polinomio q (p); p q Sovraccarico degli operatori Il C++ consente di ridefinire i suoi operatori: Ratio p(2,3), q(1,4); Ratio r = p + q; Questa è una somma di razionali public: Ratio operator+ (const Ratio& r);... Ratio Ratio::operator+ (const Ratio& r) { return Ratio(num * r.den + r.num * den, den * r.den);
5 Sovraccarico degli operatori public: Ratio operator+ (const Ratio& r);... Funzione membro Ratio Ratio::operator+ (const Ratio& r) { return Ratio(num * r.den + r.num * den, den * r.den); Ratio p(1,2), q(2,3); Ratio r = p + q; // equivale a r = p.operator+(q) Sovraccarico degli operatori public: Ratio operator+ (const Ratio& r);... Ratio Ratio::operator+ (const int n) { return Ratio(num * n, den); Ratio p(1,2); int n = 3; Ratio r = p + n; // equivale a r = p.operator+(n) Ratio r = n + p; // ERRORE: n.operator+(q) non è definito Sovraccarico degli operatori public: Ratio operator+ (const Ratio& r);... friend Ratio Ratio::operator+ (const int n, const Ratio& r)) { return Ratio(num * n, den); Funzione friend Ratio p(1,2); int n = 3; Ratio r = n + p; // OK Se il primo parametro non appartiene alla classe la funzione non può essere membro
6 Sovraccarico degli operatori friend ostream& operator<< (ostream& os, const Ratio& r); ostream& operator<< (ostream& os, const Ratio& r) { if (r.den!= 1) os << r.num << '/' << r.den; else os << r.num; return os; Tipico esempio: la ridefinizione dell I/O cout << r; // r è di classe Ratio Sovraccarico di = Polinomio& Polinomio::operator= (const Polinomio& p) { if (&p!= this) { // non esegue se c'è autorif. if (degree!= p.degree) { // la dimensione di coeff è diversa delete [] coeff; // libera la memoria occupata dal vecchio degree = p.degree; coeff = new Ratio[degree + 1]; for (int i = 0; i < degree + 1; i++) // copia dei coefficienti coeff[i] = p.coeff[i]; return *this; // consente assegnazioni come p = q = f;
Ereditarietà. Unità 9. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER
Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico
DettagliLaboratorio di Algoritmi e Strutture Dati. Esercizi
Laboratorio di Algoritmi e Strutture Dati Esercizi Teresa M.A. Basile basile@di.uniba.it Dipartimento di Informatica Università degli Studi di Bari Aldo Moro 1 Operatori Indispensabili Ogni Classe che
Dettaglicout << "Inserisci un numero:" << endl; cin >> n; ris = n*2; cout << "Il doppio di " << n << " e " << ris << endl;
Funzioni int n, ris; cout n; ris = n*2; cout
DettagliLaboratorio di programmazione
Laboratorio di programmazione Lezione VIII Tatiana Zolo tatiana.zolo@libero.it 1 PROGRAMMAZIONE A OGGETTI Quando si programma a oggetti si scompone il problema in sottogruppi di parti collegate che tengono
DettagliAncora sulle Classi in C++ e Java. this
Ancora sulle Classi in C++ e Java this Classe: riepilogo gestione memoria ogg1: oggetto di invocazione del metodo ogg: parametro fornito al metodo!"# ogg1 ogg2 ogg metodoa metodob varv varw varx varv varw
DettagliIl creator di un oggetto è l entità (oggetto o funzione) che crea un oggetto. L owner di un oggetto è l entità responsabile della sua distruzione
Il creator di un oggetto è l entità (oggetto o funzione) che crea un oggetto L owner di un oggetto è l entità responsabile della sua distruzione Creator e owner in generale non coincidono class ExprParser
DettagliOggetti. Definizioni di Classi II
Programmazione a Oggetti Definizioni di Classi II Sommario Costruzioni di oggetti Campi e metodi di classe Overloading Istanziazione di oggetti Costruzione di un oggetto Processo complesso che comprende
DettagliProgrammazione a Oggetti Lezione 8. Definizioni di Classi II
Programmazione a Oggetti Lezione 8 Definizioni di Classi II Sommario Costruzione di un oggetto Processo complesso che comprende varie fasi: 1. Allocare spazio per ogni campo - in ordine testuale - inizializza
Dettagli//=============================== class String { // VARIABILI DI ISTANZA char * base; int length;
#include using namespace std; String STRING 1 //=============================== class String { // VARIABILI DI ISTANZA char * base; int length; //METODI // metodi interni di servizio-------------------------------
DettagliString. String: Esercizio 1
1 String class String { private: // VARIABILI DI ISTANZA char * base; int length;... 2 String: Esercizio 1 Scrivere e testare i metodi di base: a. i costruttori String(), String(char * s), b. il distruttore.
DettagliTipi di dato e strutture dati
Tipi di dato e strutture dati 1. Tipi di dato Pressoché tutti i linguaggi di programmazione tipati consentono all utente di definire nuovi tipi. Il C++ fornisce quattro modi per farlo: typedef, enum, struct,
DettagliClassi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array
Classi e array Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array Si vuole definire una classe Polinomio per la rappresentazione di polinomi a
DettagliClassi e oggetti Seconda parte. Oggetti dinamici
Università della Calabria Corso di Laurea in Ingegneria Elettronica Programmazione Orientata agli Oggetti A.A. 2006/2007 Classi e oggetti Seconda parte Paolo Trunfio * * DEIS, Università della Calabria
DettagliGestire le situazioni di errore
Gestire le situazioni di errore #include using namespace std; Classe VettoreDiInteri const int MAX = 10; class VettoreInteri { int v[max]; public: ; Gestire le situazioni di errore Ottenere
DettagliIngegneria Elettronica Ingegneria delle Telecomunicazioni (J-Z) Ing. Antonio Monteleone A.A. 2001/02 3 ciclo
Ingegneria Elettronica Ingegneria delle Telecomunicazioni (J-Z) Ing. Antonio Monteleone A.A. 2001/02 3 ciclo Il C++ permette la definizione di nuovi tipi (oltre a int, float, double ), detti tipi definiti
DettagliCorso di Laboratorio 2 Programmazione C++ Silvia Arcelli. 24 Ottobre 2014
Corso di Laboratorio 2 Programmazione C++ Silvia Arcelli 24 Ottobre 2014 1 Una funzione membro importante: il costruttore In logica OOP l accesso allo stato interno di un istanza deve avvenire solo attraverso
DettagliSommario. Esempio. Esempio: Canzone.h #ifndef CANZONE_H #define CANZONE_H. Esempio: Canzone.cpp
Sommario Classi e oggetti, un esempio: Oggetti in memoria stack e in memoria heap Oggetti e funzioni Oggetti ed array Il puntatore implicito this Costruttore: Lista di inizializzazione dei membri Tipo
DettagliI numeri razionali. Specifica: la sintassi. Specifica: la semantica
Tipi di dato e strutture dati Specifica e realizzazione di strutture informative come classi Che cos è un tipo di dato? Tutti i linguaggi di programmazione tipati forniscono tipi ed operatori predefiniti
DettagliIl paradigma OO e le Classi
Oggetti e Classi (CAP 10) Alberto Garfagnini Università degli studi di Padova 1 Dicembre 2009 Il paradigma OO e le Classi La programmazione ad Oggetti () è una filosofia di programmazione che si basa sui
DettagliLaboratorio di programmazione
Laboratorio di programmazione Lezione IX Tatiana Zolo zolo@cs.unipr.it 1 TIPI STRINGA Il C++ fornisce due rappresentazioni: stringa di caratteri stile C e la classe stringa introdotta nel C++ standard.
DettagliLaboratorio di programmazione
Laboratorio di programmazione Lezione X Tatiana Zolo tatiana.zolo@libero.it 1 Proprietà fondamentale dei linguaggi object-oriented. Classe A classe base (o superclasse) classe da cui si eredita Classe
DettagliOverloading degli operatori
Overloading degli operatori Indice L overloading degli operatori Restrizioni sull overloading degli operatori L overloading degli operatori: le funzioni membro L overloading degli operatori: le funzioni
DettagliUguaglianza e copia di oggetti
Uguaglianza e copia di oggetti Sommario 1. Classi Object e Class 2. Uguaglianza superficiale e uguaglianza profonda 3. Copia superficiale e copia profonda 4. Uguaglianza e copia in classi derivate 1 La
DettagliC++ funzioni Alberto Ferrari. Alberto Ferrari Programmazione di applicazioni SW
C++ funzioni Alberto Ferrari http://en.cppreference.com FUNZIONI le funzioni caratterizzate da nome, parametri (numero, ordine e tipo) e tipo di ritorno le funzioni hanno un prototipo il prototipo non
Dettaglieccezioni Alberto Ferrari Alberto Ferrari Programmazione di applicazioni SW
eccezioni Alberto Ferrari eccezioni o C++ fornisce strumenti per gestire situazioni eccezionali o terminologia o sollevare un eccezione (to throw an exception) = segnalare una situazione eccezionale o
DettagliLaboratorio di Algoritmi e Strutture Dati
Realizzazione di Liste (II) Laboratorio di Algoritmi e Strutture Dati Domenico Redavid redavid@di.uniba.it Materiale di base gentilmente concesso dal dott. Nicola Di Mauro Ricercatore presso l'univ. di
DettagliCorso di Programmazione ad Oggetti
Corso di Programmazione ad Oggetti Costruttori di copia, funzioni di accesso e variabili static aa 2008/2009 Claudio De Stefano Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/2009 1
DettagliIndice. Il qualificatore const Le funzioni friend Il puntatore this Gli operatori new e delete I membri static La composizione di classi
Le Classi II Parte Indice Il qualificatore const Le funzioni friend Il puntatore this Gli operatori new e delete I membri static La composizione di classi Le classi ed il qualificatore const Il qualificatore
DettagliFondamenti di Programmazione Prof.ssa Elisa Tiezzi. Programmazione orientata a oggetti
Fondamenti di Programmazione Prof.ssa Elisa Tiezzi Programmazione orientata a oggetti 1 Programmazione OO Concetti base: dati istruzioni Dati: variabili tipi Istruzioni: istruzioni base strutture di controllo
DettagliLaboratorio di Programmazione Anno Accademico
Università di Roma La Sapienza, Facoltà di Ingegneria Corso di Laboratorio di Programmazione Anno Accademico 2004-2005 Corso di Laurea in Ingegneria Informatica Prof. Giuseppe De Giacomo (A L) & Prof.
DettagliProgettazione del Software Anno Accademico Tipi di dato in Java
Università di Roma La Sapienza, Facoltà di Ingegneria Corso di Progettazione del Software Anno Accademico 2003-2004 Corso di Laurea in Ingegneria Gestionale Prof. Monica Scannapieco (A L) & Prof. Giuseppe
DettagliSEZIONE 2 Introduzione al copy constructor e ad operator overloading
SEZIONE 2 Introduzione al copy constructor e ad operator overloading void f(pila s) { s.estrai(); s.inserisci(3); cout
Dettagli/* ordinamento dei lati dal maggiore al minore e "riconoscimento" del grado di "regolarità" del triangolo */ void ordinalati()
Una possibile soluzione, molto più esauriente rispetto alle richieste stesse del problema è la seguente (è stata ragionevolmente controllata, ma se qualcuno trovasse dei difetti di funzionamento è pregato
DettagliI costruttori. Il costruttore standard. Esempio di valori di default. Alterare il costruttore standard
I costruttori Servono a inizializzare i valori dei campi degli oggetti. Vengono invocati automaticamente dopo che l oggetto è stato creato. Il costruttore standard Questo tipo di costruzione mette dei
DettagliProgettazione del Software Anno Accademico
Università di Roma La Sapienza, Facoltà di Ingegneria Corso di Progettazione del Software Anno Accademico 2003-2004 Corso di Laurea in Ingegneria Gestionale Prof. Monica Scannapieco (A L) & Prof. Giuseppe
Dettagli14 - Metodi e Costruttori
14 - Metodi e Costruttori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
DettagliOverloading di Operatore
Overloading di Operatore Perche' In C++ si creano e manipolano dei tipi di dato creati dall utente (il programmatore) Il C++ mette a disposizione degli strumenti per creare e distruggere gli oggetti creati
DettagliStrutture come parametri di funzioni
Strutture come parametri di funzioni int main() { struct PolReg { int numlati; float lunghezzalato; PolReg p1; p1.numlati = 3; p1.lunghezzalato = 10.0; float perimetro = p1.numlati * p1.lunghezzalato;
Dettagliif else Fondamenti di Informatica (Modulo B) !""#$ % ( #if else ) " *+ #switch if (Condizione) Istruzione
#$ % '' # ( #if else ) *+ #switch 50 if else * if * # if (Condizione) Istruzione Condizione bool Istruzione ( Condizione true + Istruzione ( Condizione false + Istruzione +, -+.// x.//# if (x == 100) if
DettagliArray. Definizione e utilizzo di vettori
Array Definizione e utilizzo di vettori Array (1/2) Un array o vettore rappresenta un insieme di elementi dello stesso tipo. Sintassi per la creazione di un array: tipo_elementi[] nome; nome = new tipo_elementi[numero_elementi];
DettagliCorso di Fondamenti di Informatica Il sistema dei tipi in C++
Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 6: Array e puntatori Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Una funzione per i numeri di Fibonacci
DettagliLezione 6: Array e puntatori
Lezione 6: Array e puntatori Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione Una funzione per i numeri di Fibonacci
DettagliEreditarietà e polimorfismo
Università della Calabria Corso di Laurea in Ingegneria Elettronica Programmazione Orientata agli Oggetti A.A. 2006/2007 Ereditarietà e polimorfismo Paolo Trunfio * * DEIS, Università della Calabria http://si.deis.unical.it/~trunfio
DettagliLa Gestione della Memoria. Carla Binucci e Walter Didimo
La Gestione della Memoria Carla Binucci e Walter Didimo Esecuzione di programmi Java L esecuzione di un programma Java richiede: la compilazione del codice Java in bytecode Java (un linguaggio macchina
DettagliOOP in C++ ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi
OOP in C++ Classi e Oggetti Una classe èuntipochehavariabili ha membro (dati membro) e funzioni membro In Java i dati membro sono chiamati attributi e le funzioni membro metodi Una variabile ab di un tipo
DettagliCorso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione
Corso: Fondamenti di Informatica (Gruppo 2) a.a. 2017-18 Corsi di laurea: Ing. Settore Informazione Questionario a Risposte Multiple per auto-valutazione del Lab05 Domanda n. 1 Argomento: Iterazioni, array
DettagliCast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double
Il cast Cast implicito Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto Per esempio: byte short int long float double int x = 10; float f; f = x; Il valore di
DettagliIngegneria Elettronica Ingegneria delle Telecomunicazioni (J-Z) Ing. Antonio Monteleone A.A. 2001/02 3 ciclo
Ingegneria Elettronica Ingegneria delle Telecomunicazioni (J-Z) Ing. Antonio Monteleone A.A. 2001/02 3 ciclo In C++ è possibile distinguere due aree distinte di memoria: memoria stack e memoria heap E
DettagliAstrazioni sui dati : Specifica di Tipi di Dato Astratti in Java
Astrazioni sui dati : Specifica di Tipi di Dato Astratti in Java 1 Specifica ed Implementazione di Tipi di Dato Astratti in Java cos è un tipo di dato astratto specifica di tipi di dati astratti un tipo
DettagliClasse Squadra. #include <iostream> using namespace std;
Classe Squadra Si vuole scrivere un programma che gestisce la classifica di un campionato tra squadre di calcio, ognuna identificata dal proprio nome. Il programma deve essere in grado di assegnare un
DettagliOverloading di operatori
Overloading di operatori In C++ è possibile effettuare l overloading degli operatori per utilizzarli sugli oggetti delle classi definite dagli utenti complex.h class Complex { double m_re, m_im; public
DettagliCorso di Fondamenti di Informatica. Puntatori e Allocazione Dinamica
Corso di Fondamenti di Informatica Puntatori e Allocazione Dinamica I puntatori (Richiamo) Il C++ prevede puntatori a dati di qualsiasi natura, semplici o strutturati e puntatori a funzione. In particolare
DettagliCalcolare x n = x x x (n volte)
Calcolare x n = x x x (n volte) Abbiamo bisogno di: una variabile ris in cui ad ogni iterazione del ciclo si ha un risultato parziale, e che dopo l ultima iterazione contiene il risultato finale; una variabile
DettagliUniversità degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Array. Anno Accademico 2010/2011 Francesco Tortorella
Corso di Informatica Tipi strutturati: Array Anno Accademico 2010/2011 Francesco Tortorella Gli array In alcuni casi, l informazione che bisogna elaborare consiste di un aggregazione di valori, piuttosto
DettagliEsercitazione Fondamenti di Informatica 2
Esercitazione Fondamenti di Informatica 2 Matrici (seconda parte) 27 marzo 2006 a Prodotto righe-colonne Scrivere un metodo Matrice moltiplica(matrice mat) che, applicato ad una istanza dell oggetto Matrice,
DettagliCommenti. I commenti vengono ignorati dal compilatore, ovvero non vengono tradotti in codice eseguibile. /* righe multiple seconda riga */
Introduzione al C++ Sommario Le differenze fra C e C++ commenti parametri per funzioni funzioni inline overloading di funzione input/output nuovi header punto di dichiarazione delle variabili locali allocazione/deallocazione
DettagliLaboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
DettagliUNIVERSITA DEGLI STUDI ROMA TRE DIPARTIMENTO DI MATEMATICA E FISICA
UNIVERSITA DEGLI STUDI ROMA TRE DIPARTIMENTO DI MATEMATICA E FISICA Laboratorio di Programmazione e Calcolo Cognome:... A.A. 2017-18 Nome:... Test Finale con Soluzioni Matricola:... Roma, 18 gennaio 2018
DettagliStruttura di un programma C++
Struttura di un programma C++ // Programma semplice in C++ #include using namespace std; int main() { cout
DettagliOggi. La programmazione strutturata - III. Sequenza e selezione. Dove siamo. Iterazione: while e do/while. Raffinamenti successivi.
La programmazione strutturata - Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@dimi.uniud.it Programmazione, lezione 6 Oggi Stefano
DettagliOggetti. La programmazione orientata agli oggetti, OOP (Object-Oriented Programming), prende il nome dall elemento su cui si basa, l oggetto.
Classi e oggetti Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming), prende il nome dall elemento su cui si basa, l oggetto. OOP Vantaggi facilità di lettura e di comprensione
DettagliMetodi static. Esempio. public class Financial { { return (p / 100) * a; } //... }
Static Metodi static Esempio public class Financial public static double percentof(double p, double a) return (p / 100) * a; //... Metodi static Altri esempi ben noti main() i metodi della classe Math
DettagliLe classi. Costruttori
Costruttori Le classi Usare una funzione per inizializzare membri di una classe viene considerato poco elegante. Ci si potrebbe dimenticare di invocare la funzione di inizializzaione o, peggio, chiamarla
DettagliVisibilità dei Membri di una Classe
Visibilità dei Membri di una Classe Lezione 10 Ogni classe definisce un proprio scope racchiude il codice contenuto nella definizione della classe e di tutti i suoi membri ogni metodo della classe definisce
DettagliLa Standard Template Library Heap, algoritmi e funtori
La Standard Template Library Heap, algoritmi e funtori Pericle Perazzo 27 maggio 2011 Riassunto contenitori e iteratori Un contenitore è un oggetto che contiene un insieme di altri oggetti di tipo omogeneo
DettagliCorso di Laboratorio 2 Programmazione C++ Silvia Arcelli. 27 Ottobre 2014
Corso di Laboratorio 2 Programmazione C++ Silvia Arcelli 27 Ottobre 2014 1 AVVISO Nuovo calendario turni di laboratorio : I prova: 11, 12, 13 Novembre 2014 ore 9-12 II prova: 18, 19, 20 Novembre 2014 ore
DettagliFondamenti di Informatica
Programmazione modulare (top-down) Fondamenti di Informatica 15. Funzioni in C++ (parte 1) Problemi complessi Conviene suddividere il programma in sottoprogrammi piu semplici mediante la metodologia di
DettagliCorso di Programmazione ad Oggetti
Corso di Programmazione ad Oggetti Funzioni e classi friend Overloading di operatori aa 2008/2009 Claudio De Stefano 1 Le funzioni friend Nella definzione di una classe è possibile elencare quali funzioni,
DettagliA. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas
Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),
DettagliProgrammazione a oggetti
Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi piluc@dsi.unifi.it Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software
DettagliEsercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni
Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizio 1 Dire quale è la complessità temporale del seguente metodo, espressa con notazione asintotica O(.) (con la migliore
DettagliIl linguaggio C. Puntatori e dintorni
Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;
DettagliDefinizione di classi. Walter Didimo
Definizione di classi Walter Didimo Definizione di classi Fino ad ora abbiamo imparato a: creare oggetti da classi già pronte usare gli oggetti creati, invocando metodi la creazione e l uso di oggetti
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Strutture di Controllo Parte 3 Istruzioni Iterative (Cicli) versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima
DettagliInizializzazione, Assegnamento e Distruzione di Classi
Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della
DettagliParte 3. Puntatori. [S. Dalí The temptation of St. Anthony, 1946] - AA. 2015/16 3.1
Parte 3 Puntatori [S. Dalí The temptation of St. Anthony, 1946] 3.1 3.2 Puntatori Approfondimento rispetto alla trattazione vista nel corso precedente Finora come avete utilizzato i puntatori? Principalmente
Dettagli! Riassunto. ! for. ! Cicli annidati. ! Esempi, esercizi, errori tipici. ! Programmazione strutturata. ! break e continue I1; I2; I3;
La programmazione strutturata - Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 6 Oggi Stefano Mizzaro
DettagliProva scritta 2 luglio Esercizio 1
Prova scritta 2 luglio 2015 Esercizio 1 void elimina (elem*& testa) { elem*p, *q; q= testa; while (q!=null) { if (q->info%2) { if (q==testa) { testa=test->pun; delete q; q=testa; p->pun = q->pun; delete
DettagliIl puntatore alla classe base e le funzioni virtuali
Polimorfismo Indice Le funzioni virtuali e il puntatore alla classe base Le funzioni virtuali pure Classi astratte: interfaccia Commenti sugli strumenti del C++ e l OOD Il puntatore alla classe base e
Dettaglipublic static boolean occorre (int[] a, int n) { int i = 0; boolean trovato = false;
Metodi iterativi con array monodimensionali 1. Scrivere un metodo che, dato un array di interi a, restituisce il valore minimo in a. public static int minimo (int[] a) { int min = a[0]; for (int i=1; i
DettagliPila 1. Pila 2. Pila 4. Pila 3. Attenti all ordine! public: Pila() { size=initialsize; defgsize =initialsize; marker=0; contenuto=new int[size]; }
1 Pila 1 2 Pila 2 public class Pila { protected int size; protected int defgsize; protected int marker; protected int contenuto[]; final int initialsize=3; class Pila { protected: int size; int defgsize;
DettagliAssegnazione di una variabile
Assegnazione di una variabile Per scrivere un valore dentro una variabile si usa l operatore di assegnazione, che è rappresentato dal simbolo =. Quindi, se scrivo int a; a = 12; assegno alla variabile
DettagliIntroduzione alla Programmazione in Java attraverso un esempio commentato
Corso di Studi in Informatica Programmazione 1 corso B prof. Elio Giovannetti Introduzione alla Programmazione in Java attraverso un esempio commentato Programmazione 1 B - a.a. 2002-03 53 Modello di memoria
DettagliLezione 4. Costruttori
Lezione 4 Costruttori e distruttori Costruttori Quando si crea un oggetto di una classe è possibile inizializzarne i membri tramite il costruttore di classe Il costruttore è una funzione membro che ha
DettagliPerché il linguaggio C?
Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare
DettagliStudente (Cognome Nome): Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a Primo scritto 14 Gennaio 2010
Studente (Cognome Nome): Matricola: Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2009-10 Primo scritto 14 Gennaio 2010 Quesito Una Farmacia è rappresentata da un array di farmaci
DettagliNel seguito, istruzione1 e istruzione2 possono essere un blocco di codice { }, cioè più istruzioni
INTRODUZIONE A C++ Nel seguito, istruzione1 e istruzione2 possono essere un blocco di codice, cioè più istruzioni Istruzione - Esempi Significato int a; float f; double d; char c; int x=0; variabile =
DettagliIl primo programma C++
Il primo programma C++ Un programma in qualsiasi linguaggio evoluto è una sequenza di istruzioni che la CPU dopo opportune conversioni esegue. La sintassi dei linguaggi di programmazione è molto piu rigida
Dettaglipublic class Counter2 extends Counter { public void dec() { val--; }
public class Main public class Counter2 extends Counter public void dec() val--; public class Counter public Counter() System.out.println("Counter : costruttore di default!"); val = 1; System.out.println("Counter
DettagliIntroduzione al C++ Parte 2
Introduzione al C++ Parte 2 Sommario Le differenze fra C e C++ il qualificatore const i namespace gli stream Evitare modifiche accidentali Il qualificatore const indica che la variabile non può più essere
DettagliProgrammazione II Compitino (Vers. B)
Programmazione II Compitino (Vers. B) 17 dicembre 2015 Cognome Jackson Nome Michael Matricola 696969 Anno di corso 1 Nei seguenti quesiti, quando vi è richiesto di scrivere un programma, potete limitarvi
DettagliCorso di programmazione in C
Corso di programmazione in C Lezione 3: un semplice programma Liceo Scientico Teresa Gullace M. Prisco 15 marzo 2019 Liceo Scientico Teresa Gullace Corso di programmazione in C 15 marzo 2019 1 / 11 Outline
DettagliProgrammazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Riferimenti versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliHo raggiunto la fine del file Provo a leggere un intero, ma il dato che prelevo dal file non è un intero
Stato di uno stream Uno stream possiede uno stato, che può essere corretto o errato. Quando lo stream è in stato di errore, non posso utilizzarlo. In lettura: Apertura di un file che non esiste X Ho raggiunto
Dettagli