Una volta che un programmatore dichiara un metodo , che il nome di solito non può designare un altro metodo con codice diverso al suo interno . L'esclusione di questo è quando gli argomenti del metodo sono diversi . Ad esempio, un programmatore potrebbe definire il metodo di " calcolare " per prendere un intero come argomento : 
 
int calcola ( int x ) per
 Secondo le regole del C + + , un altro metodo denominato " calcolare " che prende un intero come argomento non potrebbe esistere , indipendentemente dal codice all'interno del metodo . Ma , un altro metodo con lo stesso nome e diverse argomentazioni potrebbe esistere : 
 
int calcola (double x ) per
 Il tipo o argomento quando viene chiamato il metodo sarebbe decidere quale metodo viene eseguito 
 . esistono 
 Limitazioni 
 
 Limitazioni di come metodo di overloading opere in C + + . Al fine di sovraccaricare un nome metodo , gli argomenti devono utilizzare diversi tipi di dati , o differiscono nella quantità di argomenti designati. I metodi che restituiscono valori diversi , ma condividono un nome e lista di argomenti identici , non sono ammessi in C + + . I metodi con lo stesso nome e gli argomenti che si distinguono a causa di un nome di tipo diverso (o di dare un tipo di dati esistente un nome diverso) non sono ammessi. Per esempio : 
 
 typdef int fake_int ; 
 
int write ( int x ) per
doppia scrittura ( int x ) per
int write ( fake_int x ) < br
 Nessuna di queste tre definizioni di metodo > seguire le regole del metodo sovraccarico e restituirà un errore . 
 derivazione 
 
 un altro modo per sovraccaricare un metodo è attraverso la derivazione di classe . Nella costruzione di classe , un programmatore può fare una classe eredita le funzionalità da un'altra classe . La classe che eredita (derivato ) può utilizzare i metodi della classe da cui eredita ( classe base ) . Una classe di base ( classe X) potrebbe avere un metodo di "stampa" definito . Un'altra classe ( classe Y ) che deriva dalla classe X ha anche accesso a stampare. Tuttavia, classe Y potrebbe anche definire una propria versione del metodo di stampa. In questo caso, il metodo di stampa eseguito sarà quello definito in classe Y , a meno che il programmatore specifica che la versione X classe di stampa deve essere eseguita. 
 Esempi 
 
 un esempio di un metodo ridefinito tramite una classe derivata coinvolge due classi . In primo luogo , la classe base : 
 classe 
 Prima ( 
 
 pubblico : 
 
 int x ; 
 
 int returnX ( ) { 
 
 ritorno x ; 
 
 } 
 
 } ; 
 
 Poi , una classe derivata che ridefinisce il " returnX ( ) " metodo : 
 classe 
 Seconda : pubblica First { 
 
 pubblico : 
 
 int returnX ( ) { 
 
 ritorno x +1; 
 
 } 
 
 } ; 
 
 la classe "Secondo" ha accesso alla variabile " x " e il metodo " returnX ()" che fanno parte della classe di "First" . Tuttavia, secondo il metodo ridefinisce il returnX ( ) in una propria definizione . Ciò significa che quando un oggetto di seconda classe chiama il metodo returnX ( ) , il valore restituito sarà x +1 . 
 
              
Programmazione © www.354353.com