Force le type en C + +
Pressé types disponibles en C + +: int, float, long, double aussi facile ... ne le dites pas 
Chaque classe (classe) peut être considéré comme un nouveau type de données, tandis que les calculs, nous avons parfois besoin de forcer le type d'une classe de modèles est disponible. Par exemple, nous construisons des classes SOTHUC (réel) à de telles opérations "plus", "sauf", "l'homme", "fracture", évidemment, on ne peut pas effectuer la construction et les opérations autour du modèle , SOTHUC disponibles pour d'autres types comme int float, ... Pour ce faire nous avons deux manières: la charge du mari pour ajouter d'autres opérateurs avec le type de style SOTHUC disponibles, ou de «force de type« classe SOTHUC (réel) de type int, float ... pour effectuer des calculs.
Pour forcer le type de classe: pressé de la classe d'un modèle est disponible ou la pression d'un type de classe est disponible sur la compilation de Dev-C + + que nous faisons ce qui suit:
- Le jus d'une classe de modèles est disponible:
> Nom du Lop class>
(
lieu> tenbien données kieu <;
public:
...
<kieu san> exploitant des données ()
(
....
type de retour <Gia de transfert de données ve>;
)
)
Utilisez comme suit:
> Nom du Lop> ex / / objets ex-classe déclarée
désormais besoin d'appuyer sur un type d'objet ex est disponible en C + + sont utilisés comme suit:
ex1 san> données <kieu;
ex1 = <kieu san> données (ex); mise en œuvre * / type de force de <kieu ex san> de données (type de EX1 est), puis affecté à la EX1 * /
Vous pouvez également utiliser
ex1 = ex; / * Le programme va automatiquement appuyé sur le type de <kieu ex san> de données (type de EX1 est), puis affecté à la EX1 * /
Pour mieux comprendre, voir l'exemple suivant:
Supposons que nous construisons une couche de grands entiers comme suit:
classe largeInt
(
valeur char *;
public:
largeInt ();
(Const largeInt largeInt &);
~ LargeInt ();
istream & operator ami>> (istream &, largeInt &);
ostream & operator ami <<(ostream &, const largeInt &);
+ Opérateur largeInt (largeInt const &);
opérateur largeInt - (largeInt const &);
largeInt opérateur - ();
* Exploitant largeInt (const char &);
* Exploitant largeInt (largeInt const &);
opérateur largeInt / largeInt const (&);
opérateur à un ep ();// int int
);
opérateurs +,-,*,/ que nous utilisons seulement le mari chargés DC 2 de la classe largeInt même objet:
Quand il n'y a pas d'opérateur de type vigueur:
, X2, x; cin> x1 largeInt> x1> x2, int y, y1;
x = x1 + x2 / / fait
y = x1 / / pas mis en œuvre
y = x1 +9 / / pas mis en œuvre
y = 9 + x1 / / pas mis en œuvre
x = y1; / / pas mis en œuvre
Une fois que l'opérateur en appuyant sur le style:
, X2, x; cin> x1 largeInt> x1> x2, int y, y1;
x = x1 + x2 / / fait
y = x1 / / mise en œuvre du programme va automatiquement le type de force int x1
y = x1 9; / * ne peut se faire, de prendre la parole pour forcer le type de x1 int: y = int (x1) +9 * /
y = 9 + x1; / * Ceci est fait, le programme automatiquement appuyé sur le type de x1 int * /
x = y1 / / pas encore mis en œuvre
- Jus d'un type est disponible sur une classe (la classe) est le type de données que nous définissons:
C + + ne permet pas de nouveaux opérateurs afin de définir plus nous ne pouvons pas appliquer sur la façon de forcer le type pour ce cas:
Comment rendre compte:
classe largeInt
(
valeur char *;
public:
...
opérateur à un ep ();// int int
largeInt opérateur () / / Blancs
);
Est invalide et a manqué à l'opérateur largeInt ();
Que dois-je faire pour forcer un type de données disponibles sur une classe? Nous avons deux manières: Utilisez les fonctions que vous (ami) utilisé pour forcer le type et la création de contenu (constructeur) pour forcer le type. Si vous utilisez la fonction de force tapez le nom de la fonction ne peut être identique au nom de la classe, c'est une faiblesse de ce phénomène, supposons dans un nombre de classes de grande taille (largeInt) ci-dessus, à la force des x de type int de les taper largeInt on ne peut utiliser largeint (x), convertToLargeInt (x) ... ne pouvez pas utiliser largeInt (x), des inconvénients réels. Nous avons donc utilisé pour forcer constructeur de type, de déclarer ce qui suit:
> Nom du Lop class>
(
lieu> tenbien données kieu <;
public:
...
> Nom du Lop> (<kieu san> données)
(
type cout <<"force de style de calque de données disponibles";
)
)
Retour à la classe des exemples d'un grand nombre nous voir ci-dessus
Quand il n'y a pas de constructeur de type «force»
largeInt x1, x2, x, int y, y1;
...
x = y1; / / pas mis en œuvre
Une fois que le constructeur de type «force»
largeInt x1, x2, x, int y, y1;
...
x = y1; / / Faire le programme automatiquement appuyé sur int largeInt
Note: seuls constructeur de type auto-attribué en vigueur, afin
largeInt x1, x2, x, int y, y1, y2;
...
x = x1 + y1 / ou n'ont pas fait ADRESSE
largeInt x = x1 + (y1); / / fait
x = y1 + x1; / * fait, automatiquement appuyé sur x1 int, la somme, presses automatiques résultats largeInt et affectée à x * /
x = y1 + y2 / / fait
















Je fais des exercices liés à un grand nombre, mais elle n'est pas traitée BJT NTN fade, vous pouvez lui donner le code n'est pas le grand NON!


Merci beaucoup!
Votre Ici
Vous, ici en mode hors connexion
http://upload.vui360.com/mirror1/download.php?file=2f753863ce1e0c926a3dab7cf1c75767 
Tous ces problèmes ont forcé leur modèle décrit ci-dessus, puis