Il concetto di operatore sovraccarico in C ++


C ++ linguaggio di programmazione si concentra sulla programmazione orientata agli oggetti, che ha diversi vantaggi rispetto al modo convenzionale. La libertà di creare esteso la funzionalità di codifica definito dall'utente tipo di dati e programmi semplificati lunghi e complicati. Gli oggetti possono avere diversi attributi relativi alle funzioni o amico di classe e membri sono trattati, se del caso.

Operatore sovraccarico concetto dà un significato speciale per un operatore come '+' o '-'. L'aggiunta o sottrazione non possono essere eseguiti direttamente con gli oggetti come facciamo con i tipi di dati di base. Come sovraccaricare le funzioni, gli operatori possono anche essere sovraccaricati di eseguire questa operazione. Ciò si ottiene con l'aiuto di funzioni membro e funzioni friend. La forma generale di una funzione dell'operatore è sovraccaricato




tipo di OP operator (elenco degli argomenti) di ritorno;

dove 'op' è il segno di 'dell'operatore.

sovraccarico operatore attraverso le funzioni membro


Mentre gli operatori di sovraccarico, con funzioni di membro, solo gli oggetti appartenenti a questa classe possono accedervi. Così l'oggetto viene utilizzato per richiamare il primo operando e gli oggetti o le variabili specificate nella lista degli argomenti sarebbero i restanti operandi.

Un operatore unitario sovraccaricato da una funzione di membro non avrà argomenti e funzione operatore di overload binario avrà un solo argomento.

Ad esempio, meno sovraccarico funzione operatore unario deve essere

il tipo restituito dell'operatore ()

e l'operatore la funzione overload deve essere binario

Tipo restituito dell'operatore + (scenario 1);

Un esempio di overloading degli operatori attraverso la funzione di membro può essere letto qui.

Ci possono essere situazioni in cui tutti gli operandi non devono essere oggetti (tipi di dati definiti dall'utente) in una classe. Quando l'operando sinistro dell'operatore binario non è un tipo di dati definito dall'utente, utilizzando una funzione membro non funziona. Tali casi sono gestite utilizzando due amici operandi funzioni avendo come parametri.


funzioni sovraccarico operatore tramite amici


Funzioni friend vengono trattati come normali funzioni senza accesso ai membri privati ​​di una classe. Essi possono essere chiamati come funzione normale, e operatori possono essere sovraccaricati attraverso di loro. Tutti gli operandi vengono passati come argomenti esplicitamente qui. La forma generale di un operatore di funzione amico overload

Tipo Amico ritorno di op dell'operatore (elenco degli argomenti);

dove 'op' è il segno di 'dell'operatore.

Ad esempio, un amico sovraccarico funzione operatore unario deve essere

Amico tipo restituito operator (tema) e

una funzione di operatore di overload deve essere amico binario

Amico tipo restituito dell'operatore + (argomento1, argument2);

Sebbene funzioni friend non possono sovraccaricare gli operatori e operatore di assegnazione (=), operatore di indicizzazione ([]), l'operatore della funzione di chiamata (()), e l'accesso degli utenti dell'operatore (->) sono utili in alcuni situazioni in cui le funzioni di membro vinto 't help. In moltiplicazione scalare di un vettore, un intero (built-in caratteri di dati) e un oggetto (tipo di dati definito dall'utente) sono operandi. Quando l'oggetto diventa l'operando a sinistra, l'overloading degli operatori attraverso l'opera funzione membro. Ma in altri casi, questo non funzionerà come un oggetto della classe in questione, come operando di sinistra, a chiamare è necessaria la funzione di membro. Funzioni amico può risolvere questo problema adottando i due operandi come argomenti.

Alcune regole per gli operatori sovraccarico


  1. Solo gli operatori esistenti possono essere sovraccaricati. Non possiamo creare nuovi operatori di sovraccarico.
  2. Non possiamo cambiare il significato di base di un operatore. Non possiamo ridefinire operatore '+' per sottrarre un valore da un altro.
  3. Operatori sovraccariche seguono le regole di sintassi dell'operatore iniziale. Essi non possono essere ignorati.
  4. Ci sono alcuni operatori potrebbero non essere oberati.
  5. Gli operatori binari come '+', '-', '*' e '/' deve restituire un valore esplicito.

Gli operatori non può essere sovraccaricato

Nome Di Battesimo sintassi sizeof sizeof () affiliazione . * condizionale ?: Capacità di risolvere ::
  • C ++ il codice del programma per più di polinomiale usando combinare ...
    Anche se aggiunta logica dedicata in C ++ polinomio è uguale a C, C ++ con il vantaggio principale è che entrambi i polinomi possono essere aggiunti direttamente al concetto di sovraccarico dell'operatore.
  • Informazioni su orientato agli oggetti linguaggio di programmazione C ++
    Se il volume di dati coinvolti in un problema che è più, diventa difficile programmare utilizzando programmazione convenzionale. In questo caso, i dati sono organizzati per formare una classe (come la struttura in C) i dati definito dall'utente tipo e la programmazione viene eseguita
  • Come imparare la programmazione; Top 5 risorse per beg ...
    Programmazione di apprendimento è accompagnato libri di risorse, linguaggi di programmazione, codice sorgente, il potere e il desiderio di pensiero. Queste risorse sono state discusse in dettaglio in questo centro.
  • Sovraccarico '+' operatori binari in C ++ Language
    In questo centro, vi spiegherò come sovraccaricare l'operatore binario '+' come una funzione di membro della classe e funzionare come un amico. Vedremo anche quale situazione dobbiamo applicare come un amico ...
  • Learning Object Oriented Programming con C ++ (parte 1)
    Scopri cosa è C ++ come programmare in quella lingua. Che cosa è la programmazione orientata agli oggetti e Uy concept.Learn tutto su C ++ gratuito e on-line
  • I vantaggi di OOP
    I vantaggi di OOP

(0)
(0)

Commenti - 0

Non ci sono commenti

Aggiungi un commento

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Caratteri rimanenti: 3000
captcha