Corso di Programmazione ad Oggetti
|
|
|
- Serafina Calo
- 8 anni fa
- Просмотров:
Транскрипт
1 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
2 Richiami sui Costruttori Un costruttore è una particolare funzione membro di una classe che porta lo stesso nome della classe Per le funzioni costruttore non deve essere specificato il tipo restituito, in quanto in C++ le funzioni costruttore non possono restituire valore I costruttori possono avere anche uno o più parametri Esempio class Contatore public: Contatore(); ; Contatore::Contatore() value = 0; Contatore::Contatore(int val) value = val; Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/2009 2
3 Richiami sui Costruttori Il costruttore di un oggetto viene chiamato automaticamente nel momento in cui deve essere creato l'oggetto Esempi #include Contatoreh Contatore cont1, cont2(100); Contatore cont_ptr1, cont_ptr2; cont_ptr1 = new Contatore; cont_ptr2 = new Contatore(10); Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/2009 3
4 Richiami sui Distruttori Un distruttore è una funzione membro che: è necessaria solo se l oggetto presenta un estensione dinamica ha lo stesso nome della classe, preceduto da ~ (tilde) non restituisce risultato (neanche void) non ha alcun parametro Generalmente lo scopo dei distruttori è quello di deallocare l estensione dinamica di un oggetto NON può essere invocata esplicitamente dal programma utente, ma viene invocata implicitamente dal compilatore quando viene deallocato lo spazio di memoria assegnato all'oggetto Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/2009 4
5 Esempio di distruttore Per quanto detto in precedenza, il costruttore serve per deallocare le estensioni dinamiche degli oggetti Esempio Class Stack public: Stack(); ~Stack(); private: int *st_ptr; int num; ; // Costruttore Stack::Stack() st_ptr = new int[size]; num = 0; // Distruttore Stack::~Stack() delete [] st_ptr; Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/2009 5
6 Esecuzione dei distruttori I distruttori vengono eseguiti anche quando vengono deallocati oggetti precedentemente allocati dinamicamente Esempio void funz() Stack *st_ptr; delete st_ptr; Viene invocato il distruttore di stack Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/2009 6
7 Il costruttore di copia Crea un oggetto a partire da un altro oggetto della classe (i valori delle variabili membro vengono copiati) La sintassi dei costruttori di copia è la seguente: class Myclass Myclass(const Myclass &oggetto); ; Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/2009 7
8 Chiamata dei costruttori di copia I costruttori di copia sono chiamati in maniera implicita: All atto della definizione di un oggetto per inizializzarlo con il valore di un altro oggetto: Myclass m2=m1; oppure Myclass m2(m1); All atto della chiamata di una funzione per inizializzare un argomento (oggetto) passato per valore All atto del ritorno da una funzione, per restituire un oggetto per valore La definzione di un costruttore di copia consente di risolvere tutti i problemi visti in precedenza relativi alla copia di oggetti che hanno un'estensione Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/2009 8
9 Confronto tra costruttori di copia In mancanza della definizione del costruttore di copia, il compilatore richiama un costruttore di copia di default Il costruttore di copia di default esegue una copia copia bit a bit, limitata alla sola parte base Nel caso esista una estensione dinamica il costruttore di copia deve essere esplicitamente definito dal progettista della classe Costrutture di copia di default (bit a bit) Costrutture di copia di ad hoc obj Estensione di obj obj Estensione di obj Copia di obj Copia di obj Copia dell'estensione Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/2009 9
10 Un esempio: la classe stack Poniamo di avere la seguente classe: Class Stack public: Stack(); Stack(int dim); ~Stack(); Stack(const &Stack) private: int *st_ptr; int num; int size: ; Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/
11 la classe stack // Costruttore 1: alloca un array con una dimensione di default Stack::Stack() st_ptr = new int[stack_size]; num = 0; size = STACK_SIZE; // Costruttore 2: alloca un array di dimensione dim Stack::Stack(int dim) st_ptr = new int[dim]; num = 0; size = dim; Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/
12 la classe stack // Costruttore di copia Stack::Stack(const Stack &s) int i; num = snum; dim = sdim; s_ptr = new int[dim]; for (i=0; i < num; ++i) s_ptr[i] = ss_ptr[i]; // Distruttore Stack::~Stack() delete [] st_ptr; Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/
13 Variabili static Le variabili di una classe possono essere dichiarati static Quando la dichiarazione di una variabile membro è preceduta dalla parola static, si chiede al compilatore di creare una sola copia di quella variabile per tutti gli oggetti della classe Questo significa che tutti gli oggetti di quella classe utilizzeranno la stessa variabile (per individuarla si usa il nome della classe con l'operatore :: ); in questo modo è possibile condividere la stessa informazione tra più oggetti della stessa classe Quando si dichiarano variabili static non si alloca spazio di memoria all'interno degli oggetti della classe per tali variabili L'utilità delle variabili static deriva dal fatto che in questo modo è possibile condividere la stessa informazione tra più oggetti della stessa classe Tutte le variabili static vengono inizializzate a zero nel momento in cui viene creato il primo oggetto Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/
14 Variabili static Le variabili static non vengono create tramite istanze della classe a cui appartengono, ma devono essere definite all esterno della classe ma nello stesso ambito in cui è definita la classe Nei rari casi, però, in cui la classe è definita in un block scope, le variabili static non sono ammesse Pertanto una variabile static può essere definita solo in un namespace (se la classe è definita in quel namespace) o nel namespace globale Le variabili static possono essere private o pubbliche; se una variabile di classe static è privata, tale variabile potrà essere gestita solo da un metodo della classe a cui appartiene Le variabili static sono molto utili per gestire informazioni comuni a tutti gli oggetti di una classe (per esempio possono fornire i dati di default per l'inizializzazione degli oggetti), ma nel contempo, essendo esse stesse membri della classe, permettono di evitare il ricorso a variabili esterne, salvaguardando così il data hiding e l'indipendenza del codice di implementazione della classe dalle altre parti del programma Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/
15 Variabili static: esempio 1 Le variabili di tipo static possono essere usate per contare il numero di oggetti istanziati di un certa classe: class Counter public: static int count; Counter()++count;; ~Counter()--count;; ; int Counter::Count; main() Counter count_array[100]; cout<<endl<< oggetti esistenti: <<Counter::count; Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/
16 Variabili static: esempio 2 class ShareVar static int num; public: void setnum(int i) num = i; ; void shownum() cout << num << " "; ; int ShareVar::num; // definisce num int main() ShareVar a, b; ashownum(); // visualizza 0 bshownum(); // visualizza 0 asetnum(10); // imposta static num a 10 ashownum(); // visualizza 10 bshownum(); // anche questa istruzione visualizza 10 return 0; Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/
17 Variabili static: esempio 3 Le variabili di tipo static possono essere usate per condividere risorse comuni a tutti gli oggetti di una classe: class Myclass static int resource; public: Myclass(); bool get_resource(); void free_resource() resource = 0; ; void shownum() cout << num << " "; ; bool cl::get_resource() if (resource == 0) resource = 1; return true; else return false; Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/
18 Variabili static: esempio 3 main() Myclass m1, m2; if (m1get_resource()) cout<< la risorsa è di m1 ; if (!m2get_resource()) cout<< m2 non può utilizzare la risorsa ; Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/
19 Funzioni membro di tipo static Anche le funzioni membro possono essere di tipo static Le funzioni definite static possono accedere solo alle variabili static della classe Non hanno inoltre il puntatore this; L'uso di queste funzioni è piuttosto limitato Vengono di solito usate per inizializzare le variabili static di una classe class A static int conta( ) ; ; (prototipo) int A::conta( ) (definizione) Nel prog chiamante: int n = A::conta( ); Nella chiamata di una funzione-membro static, bisogna qualificare il suo nome con quello della classe di appartenenza Si noti che, nella definizione della funzione, lo specificatore static non va messo (per lo stesso motivo per cui non va messo davanti alla definizione di un dato-membro static) Se una funzione-membro static deve operare su un oggetto, questo deve essere trasmesso esplicitamente come argomento quando un metodo deve operare direttamente su un oggetto (uno e uno solo alla volta), è più conveniente che sia incapsulato nell'oggetto stesso e quindi non venga dichiarato static Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/
20 Funzioni di accesso alle variabili membro: lettura Sappiamo che lo stato di un oggetto è determinato dal valore delle variabili da esso contenuto È buona norma della programmazione OO definire tali variabili private Per consentire agli utenti di una classe di visualizzare lo stato di un oggetto istanziato è necessario quindi definire delle funzioni che consentono di accedere alle sue variabili Una tipica definizione di funzione di accesso è del tipo: Tipo get_value()return value; Tipicamente queste funzioni sono definite all'interno della dichiarazione della classe Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/
21 Funzioni di accesso alle variabili membro: modifica Oltre che leggere lo stato di un oggetto è anche necessario modificarlo Pertanto bisogna definire anche delle funzioni che consentono la modifica delle variabili di un oggetto Una tipica definizione di funzione di modifica è del tipo: void set_value(tipo val)var = val; NOTA La scelta di nomi del tipo get_nomevar e set_nomevar è una buona norma di programmazione, ma non è assolutamente prescritta dal linguaggio C++ Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/
22 Esempio Class Myclass public: // Funzioni Costruttore Myclass(); // Funzioni di accesso int get_n()return N;; //restituisce il valore di N char get_ch()return ch;; //restituisce il valore di ch void set_n(int val)n = val;; // assegna valore a N void set_ch(char c)char = c;; // assegna valore a ch private: int N; char ch; float x; ; Le funzioni membro definite nella dichiarazione de vengono automaticamente trasformate in funzioni inline dal compilatore Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/
23 L'accesso ai membri di una classe Quando definiamo una funzione membro di una classe, possiamo fare riferimento alle variabili membro della classe senza ambiguità Class Myclass public: Myclass(); funz(tipo val); private: Tipo1 var1; Tipo1 var2; ; Myclass::funz(Tipo val) var2 = pow(x, 2); main() Myclass m1, m2; m1funz(); // modifica le variabili di m1 m2funz(); // modifica le variabili di m2 Domanda ma qual'è il meccanismo che consente alla funzione membro di individuare le variabili specifiche dell'oggetto sul quale è stata chiamata? Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/
24 Meccanismo di accesso ai membri di una classe Nella chiamata di una funzione membro il compilatore introduce un primo parametro nascosto che è l indirizzo dell oggetto proprio a cui f viene applicata Tale parametro e un puntatore costante il cui nome è this Myclassh Class Myclass Tipo funz(tipo val); ; Viene trasformata dal compilatore in Class Myclass Tipo funz(myclass* const this, Tipo val); ; Myclassh modificato Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/
25 Il puntatore This Il ruolo del puntatore this è quello di identificare l'oggetto istanziato al quale applicare una certa funzione della classe Infatti quando si definisce una funzione membro non si specifica in alcun modo l'oggetto sul quale la funzione verrà chiamata Questa operazione viene fatta in maniera automatica dal compilatore Il quale, modifica i riferimenti alle variabili di classe aggiungendo il puntatore this Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/
26 Esempio Ovviamente la traformazione interessa anche il file cpp: Tipo Myclass::funz(Tipo1 val) var1 = pow(2, val); ; Myclasscpp Compilatore Myclasscpp modificato Tipo Myclass::funz(Myclass* const this, Tipo1 val) this->var1 = pow(2, val); ; Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/
27 Chiamata delle funzioni membro L'istruzione di chiamata di una funzione membro su una specifica istanza di una classe viene anch'essa trasformata dal compilatore In pratica l'indirizzo dell'oggetto (tramite l'operatore &) viene ricopiato in this e attraverso tale puntatore la funzione opera sull oggetto proprio: main () Myclass m, *mp; Tipo1 x; mfunz(x); mp->funz(x); compilatore main () Myclass m; Tipo1 x; funz(&m, x); funz(mp, x); Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/
Definizione 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
Laboratorio di programmazione
Laboratorio di programmazione Lezione VIII Tatiana Zolo [email protected] 1 PROGRAMMAZIONE A OGGETTI Quando si programma a oggetti si scompone il problema in sottogruppi di parti collegate che tengono
Gestione dinamica della memoria
Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Gestione dinamica della memoria Pietro Di Lena - [email protected] A pessimistic programmer sees the array as half empty.
Il 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
La programmazione ad oggetti (OOP)
Oggetti e Classi (CAP 10) Alberto Garfagnini, Marco Mazzocco Università degli studi di Padova 30 Novembre 2011 La programmazione ad oggetti (OOP) È un approccio concettuale alla programmazione (indipendente
Allocazione Dinamica della Memoria
Allocazione Dinamica della Memoria Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Allocazione Dinamica della Memoria 1 / 10 Scelta delle variabili Quando
Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1
Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)
14 - 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
La gestione della memoria dinamica Heap
Laboratorio di Algoritmi e Strutture Dati La gestione della memoria dinamica Heap Prof. Luigi Lamberti 2005 Cenni sui Processi Un Programma è un insieme di Istruzioni memorizzato in un file con le costanti
Programmazione con Java
Programmazione con Java Classi e istanze in Java Definizione di classe in Java A meno che non si usino classi già scritte da altri, prima di poter creare un qualsiasi oggetto devo creare la sua rappresentazione:
La 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
9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
9 - Array 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 Corso di Laurea
Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo.
Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo. int a = 5; a 5 α=&a Esistono in C particolari variabili dette puntatori che possono
Funzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
Linguaggio C: PUNTATORI
Linguaggio C: PUNTATORI I puntatori sono una delle più importanti caratteristiche del linguaggio C. Permettono di lavorare a basso livello, mantenendo flessibilità e praticità. Il C utilizza molto i puntatori
Il 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;
C: panoramica. Violetta Lonati
C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati
INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
Unità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo.
Unità Didattica 4 Linguaggio C Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo. 1 Vettori Struttura astratta: Insieme di elementi dello stesso tipo, ciascuno individuato da un indice;
Definizione di metodi in Java
Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa
Programmazione a oggetti
Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi [email protected] Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software
Parametri Formali di una Funzione e Record di Attivazione
Parametri Formali di una Funzione e Attivazione Un record di attivazione rappresenta il mondo di una funzione, e contiene tutto ciò che ne caratterizza l esistenza, tra cui ad esempio: le variabili locali
Funzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3)
Funzioni Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Strategie di programmazione Riuso di
Introduzione al linguaggio C Puntatori
Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2016
Tipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C
Tipi di dati strutturati e Linguaggio C Record o strutture Il costruttore struct in C Dati strutturati Record Un record o struttura è una struttura dati ottenuta aggregando elementi di tipo diverso che
Allocazione statica della memoria
2015 - Roberta Gerboni 1 2 Allocazione statica della memoria Cosa succede nella memoria del computer quando il un programma vengono dichiarate delle variabili? memoria Ad esempio: int main() 57 { int x=
Esempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione
Esercizi 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
Programmazione a Oggetti Lezione 7. Il linguaggio Java: aspetti generali
Programmazione a Oggetti Lezione 7 Il linguaggio Java: aspetti generali Sommario Obiettivi di JAVA Portabilità: produrre codice eseguibile su più piattaforme (JVM) Affidabilità: Evitare il più possibile
Esercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento
Architettura degli Elaboratori, a.a. 2005-06 Esercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento Esercizio 1 (svolto) a) Compilare in assembler Risc (Cap. V) un programma
L'Allocazione Dinamica della Memoria nel linguaggio C
L'Allocazione Dinamica della Memoria nel linguaggio C Prof. Rio Chierego [email protected] http://www.riochierego.it/informatica.htm Sommario Questo documento tratta l'allocazione dinamica della memoria
Corso 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
Il linguaggio C. Notate che...
Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione
I/O FILE. Sommario I/O FILE. I/O FILE LETTURA DA FILE DI TESTO oggetto di tipo ifstream. I/O FILE: lettura e scrittura su file di testo
Sommario I/O FILE: lettura e scrittura su file di testo Funzioni: Overloading Argomenti di default I/O FILE Per eseguire operazioni di I/O su file, si deve includere nel programma l header Tale
La classe std::vector della Standard Template Library del C++
La classe std::vector della Standard Template Library del C++ Alberto Garfagnini Università degli studi di Padova 23 Ottobre 2013 Programmazione generica in C++ : i Template I templates sono probabilmente
Strutture Dati Dinamiche
Strutture Dati Dinamiche Motivazioni Le variabili considerate fino a questo punto devono essere dichiarate staticamente, ossia la loro esistenza, il loro nome e la loro dimensione devono essere previsti
Perché 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
Esempio su strutture dati dinamiche: ArrayList
Esempio su strutture dati dinamiche: ArrayList Fondamenti di Informatica L-B 1 ArrayList Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito
Uso avanzato dei puntatori Allocazione dinamica della memoria
Uso avanzato dei puntatori Allocazione dinamica della memoria Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
Sommario. Le differenze fra C e C++ Funzioni. Varie. Memoria. commenti. parametri per funzioni funzioni inline overloading di funzione
Introduzione al C++ Sommario Le differenze fra C e C++ commenti Funzioni parametri per funzioni funzioni inline overloading di funzione Varie input/output nuovi header punto di dichiarazione delle variabili
Gli Array. Dichiarazione di un array
Gli Array Un array rappresenta una variabile indicizzata (ovvero contenente un indice) che viene utilizzata per contenere più elementi dello stesso tipo. Ogni array ha un nome al quale viene associato
STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe
STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe String Una stringa Java rappresenta uno specifico valore e come
Esercizio 2: Algebra dei Puntatori e Puntatori a Puntatori
Esercizio 2: Algebra dei Puntatori e Puntatori a Puntatori Salvatore Mandrà 7 Ottobre 2008 1 Esercizio L esercizio prevede l implementazione di funzioni per il prodotto di una matrice per un vettore, attraverso
Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.
Unità Didattica 3 Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa
