Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> C /C + + Programming >> .

Ridefinire metodi in C + +

In circostanze normali , metodi in C + + non possono condividere un nome . Questo fa sì che gli errori introducendo la possibilità di confusione in riferimenti di metodo. Un programmatore che desidera utilizzare lo stesso nome di un metodo, ma ridefinire tale metodo basato su diversi parametri , ha due opzioni . Il programmatore può sovraccaricare la funzione utilizzando lo stesso nome , ma cambiando gli argomenti del metodo . Inoltre, se il programmatore utilizza una classe derivata lui o lei può sovrascrivere una funzione di una classe di base per eseguire funzioni diverse . Sovraccarico Metodi

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