Tipo di Force in C + +
Pressato tipi disponibili in C + +: int, float, long, doppia così facile ... non ditelo 
Ogni classe (classe) può essere visto come un nuovo tipo di dati, mentre i calcoli che abbiamo a volte bisogno di forzare il tipo da una classe di modelli è disponibile. Per esempio, possiamo costruire classi SOTHUC (reale) a dette operazioni "plus", "tranne", "umano" "divario,," ovviamente non siamo in grado di eseguire due operazioni costruito intorno al modello , SOTHUC disponibili altri tipi come int float, ... per fare questo abbiamo due modi: caricare il marito di aggiungere più operatori con il tipo di stile SOTHUC disponibili, o "forza di tipo" classe SOTHUC (reale) di tipo int, float ... per eseguire i calcoli.
Per forzare il tipo di classe: Pressato dalla classe di un modello è disponibile o pressione da un tipo di classe è disponibile la compilazione di Dev-C + + possiamo effettuare le seguenti operazioni:
- Succhi di una classe di modelli è disponibile:
> nome lop> classe
(
lieu> tenbien dati Kieu <;
pubblico:
...
<kieu san> operatore dati ()
(
....
tipo <Gia ritorno di trasferimento dati ve>;
)
)
Usato come segue:
> nome LOP> ex / / oggetti ex-classe dichiarata
ora bisogno di premere su un tipo di oggetto ex è disponibile in C + + sono utilizzati come segue:
EX1 san> dati <Kieu;
EX1 = <kieu san> dati (ex) / * fare il tipo di pressione sulla ex <kieu san> dati (tipo di EX1 è) quindi assegnato al EX1 * /
Oppure usate
EX1 ex = / * Il programma automaticamente premuto sul tipo di <kieu ex san> dati (tipo di EX1 è) quindi assegnato al EX1 * /
Per capire di più, vedere il seguente esempio:
Supponiamo di costruire uno strato di interi di grandi dimensioni come segue:
classe largeInt
(
valore char *;
pubblico:
largeInt ();
(LargeInt largeInt const &);
~ LargeInt ();
amico istream & operator>> (istream &, largeInt &);
amico ostream & operator <<(ostream &, const largeInt &);
+ LargeInt operatore (largeInt const &);
largeInt operatore - (largeInt const &);
operatore largeInt - ();
* Operatore largeInt (char &);
* LargeInt operatore (largeInt const &);
operatore largeInt / (largeInt const &);
operatore ad un int ep ();// int
),
operatori +,-,*,/ che usiamo solo il marito caricato DC 2 della stessa classe largeInt oggetto:
Quando non c'è nessun operatore tipo vigore:
, X2, x, cin> x1 largeInt> x1> x2, int y, y1;
x = x1 + x2 / / Fatto
y = x1 / / non attuato
y = x1 +9 / / non attuato
y = 9 + x1 / / non attuato
x = y1, / / non attuato
Una volta che l'operatore premendo stile:
, X2, x, cin> x1 largeInt> x1> x2, int y, y1;
x = x1 + x2 / / Fatto
y = x1 / / implementazione del programma forza automaticamente il tipo di int x1
y = x1 +9; / * non può essere fatto, per rendere l'indirizzo a forza di tipo int x1: y = int (x1) 9 * /
y = 9 + x1; / * Questo è fatto, il programma automaticamente premuto sul tipo di x1 int * /
y1 = x / / Non ancora implementato
- Juice da un tipo è disponibile su una classe (classe) è un tipo di dati che possiamo definire:
C + + non permettere a nuovi operatori di definire con maggiore quindi non possiamo applicare su come forza di tipo per questo caso:
Come segnalare:
classe largeInt
(
valore char *;
pubblico:
...
operatore ad un int ep ();// int
operatore largeInt () / / non valido
);
Non è valido e fallito operatore largeInt ();
Cosa devo fare per forza un tipo di dati disponibili circa una classe? Abbiamo due modi: utilizzare le funzioni (amico) usato per forzare il tipo e la creazione di contenuti (costruttore) per forzare tipo. Se si utilizza la funzione di forzare digitare il nome della funzione non si identifica con il nome della classe, questa è una debolezza di questo modo, supponiamo che un gran numero di classe (largeInt) di cui sopra, per forzare qualche x di tipo int a digitarli largeInt si può usare solo largeint (x), convertToLargeInt (x) ... non è possibile utilizzare largeInt (x), disagio reale. Così abbiamo usato per forzare costruttore di tipo, di dichiarare quanto segue:
> nome lop> classe
(
lieu> tenbien dati Kieu <;
pubblico:
...
> nome LOP> (<kieu san> dati)
(
tipi di livello cout <<"forza tipo di dati disponibili;
)
)
Torna a esempi di classe dei grandi numeri che vediamo sopra
Quando non c'è costruttore di tipo "forza"
largeInt x1, x2, x, int y, y1;
...
Y1 = x / / non attuato
Una volta che il costruttore di tipo "forza"
largeInt x1, x2, x, int y, y1;
...
x = y1, / / Prendi il programma automaticamente premuto su int largeInt
Nota: solo tipo auto-force costruttore mentre assegnato, in modo
largeInt x1, x2, x, int y, y1, y2;
...
x = x1 + y1 / / non fare INDIRIZZO
largeInt x = x1 + (y1) / / fatto
x = x1 + y1; / * fatto, automaticamente premuto su int x1, somma, presse automatiche risultati largeInt e assegnato alla x * /
x = y1 + y2 / / Fatto
















Stavo facendo esercizi correlati ad un gran numero, ma non trattati BJT NTN dissolvenza, si può darle il codice non è il grande NO!


Grazie tanto!
Il tuo qui
È qui offline
http://upload.vui360.com/mirror1/download.php?file=2f753863ce1e0c926a3dab7cf1c75767 
Tutti questi problemi hanno costretto il loro modello descritto sopra, quindi