tip Forza C + +

17 Diċ 2008

tipi ippressat disponibbli C + +: INT, float, twila, tirdoppja din faċli ... ma jgħidux : D

Kull klassi (klassi) jista 'jitqies bħala tip ta' data ġdida, filwaqt li l-kalkoli li aħna kultant jeħtieġu li seħħ it-tip mill-klassi ta 'mudelli hija disponibbli. Per eżempju, aħna tibni klassijiet SOTHUC (immobbli) ma 'tali operazjonijiet "plus", "ħlief", "bniedem", "firda," ovvjament ma nistgħux twettaq iż-żewġ operazzjonijiet mibnija madwar il-mudell SOTHUC disponibbli għal tipi oħra kif int, float, ... biex jagħmlu dan għandna żewġ modi: tat-tagħbija l-raġel li jżidu aktar operaturi mat-tip stil SOTHUC disponibbli, jew "forza tat-tip" klassi SOTHUC (reali) ta INT tip, float ... biex iwettqu l-kalkolu.

Forza tat-tip mal-klassi: ippressat mill-klassi ta 'mudell tkun disponibbli jew pressjoni minn tip klassi hija disponibbli dwar il-kumpilazzjoni ta' Dev-C + + nagħmlu dan li ġej:

- Meraq minn klassi ta 'mudelli hija disponibbli:

Isem> pa> klassi
(
minflok> tenbien data kieu <;
pubbliku:
...
<kieu san> data operatur ()
(
....
ritorn <Gia tip ta 'trasferiment tad-data ve>;
)
)

Użata kif ġej:

Isem> pa> ex / / oġġetti ex-klassi ddikjarata

Issa jeħtieġ li l-istampa fuq tip oġġett ex hija disponibbli fis-C + + jintużaw kif ġej:

ex1 san> dejta <kieu;

ex1 = <kieu san>-data (ex); / * jagħmel it-tip ta 'ex pressati fuq <kieu san>-data (tip ta' ex1 hu) imbagħad assenjat lill-* ex1 /
Jew l-użu
ex1 = ex officio; / * Il-programm se awtomatikament pressati fuq it-tip ta <kieu ex san> dejta (tip ta 'ex1 hu) imbagħad assenjat lill-* ex1 /

Biex tifhem aktar, ara l-eżempju li ġej:

Ejja ngħidu aħna nibnu saff ta 'numri interi kbar kif ġej:

largeInt klassi
(
* Valur karatteristiċi;
pubbliku:
largeInt ();
(LargeInt const largeInt &);
LargeInt ~ ();
istream ħabib & operatur>> (istream &, largeInt &);
ostream ħabib & operatur <<(ostream &, const largeInt &);
largeInt operatur + (largeInt const &);
operatur largeInt - (largeInt const &);
operatur largeInt - ();
largeInt operatur * (const char &);
largeInt operatur * (largeInt const &);
operatur largeInt / (const largeInt &);
operatur lil ();// ep int int
);

operaturi +,-,*,/ li nużaw biss ir-raġel mgħobbija DC 2 ta 'l-largeInt istess klassi oġġett:

Meta jkun hemm l-ebda operatur tat-tip-seħħ:

, X2, x; cin> x1 largeInt> x1>> x2, y int, y1;
x = x1 + x2 / / jsir
y = x1 / / mhux implimentati
y = x1 9 / / mhux implimentati
y = 9 + x1 / / mhux implimentati
x = y1; / / mhux implimentati

Ladarba l-operatur ippressar stil:

, X2, x; cin> x1 largeInt> x1>> x2, y int, y1;
x = x1 + x2 / / jsir
y = x1 / / implimentazzjoni tal-programm awtomatikament seħħ it-tip ta int x1
y = X1 9; / * ma jistax isir, tagħmel meħtieġ seħħ tip ta 'x1 Indirizz tal int: y = INT (x1) 9   * /
y = 9 + x1; / * Dan isir, il-programm awtomatikament ippressat fuq it-tip ta 'x1 int * /
x = y1; / / għadha mhux implimentata

- Meraq minn tip wieħed ikun disponibbli fuq klassi (klassi) huwa tip ta 'data li aħna jiddefinixxu:

C + + ma jippermetti lill-operaturi ġodda li tiddefinixxi b'mod aktar hekk aħna ma jistgħux japplikaw dwar kif seħħ tat-tip għal dan il-każ:

Kif rapport:

largeInt klassi
(
* Valur karatteristiċi;
pubbliku:
...
operatur lil ();// ep int int
operatur largeInt () / / invalidi
);

Huwa invalidu u naqset operatur largeInt ();

X'għandi nagħmel biex jisfurzaw tip ta 'data disponibbli dwar il-klassi? Għandna żewġ modi: Uża l-funzjonijiet int (ħabib) użati biex forza tip u ħolqien tal-kontenut (kostruttur) li seħħ it-tip. Jekk inti tuża l-funzjoni li seħħ it-tip l-isem funzjoni ma jkun identiku ma 'l-isem tal-klassi, dan huwa dgħjufija ta' dan, wieħed jissoponi fi numri klassi kbira (largeInt) hawn fuq, li seħħ ftit x tal int tip għal tip ta għalihom largeInt wieħed jista 'juża biss largeint (x), convertToLargeInt (x) ... ma jistax juża largeInt (x), inkonvenjenza reali. Allura aħna użati biex forza kostruttur tip, li tiddikjara kif ġej:

Isem> pa> klassi
(
minflok> tenbien data kieu <;
pubbliku:
...
Isem> pa> (<kieu san> tad-data)
(
qorti <<"forza tip ta 'data stil saff disponibbli";
)
)

Ritorn għal eżempji klassi ta 'numri kbar aħna ara hawn fuq

Meta jkun hemm l-ebda tip kostruttur seħħ "

largeInt x1, x2, x, y int, y1;
...
x = y1; / / mhux implimentati

Ladarba kostruttur tip-seħħ "

largeInt x1, x2, x, y int, y1;
...
x = y1; / / Agħmel il-programm awtomatikament pressati fuq int largeInt

Nota: l-awto-seħħ tat-tip kostruttur filwaqt assenjat, hekk

largeInt x1, x2, x, y INT, y1, y2;
...
x = x1 + y1 / / m'għamlux INDIRIZZ
v largeInt = x1 + (y1); / / jsir
x = y1 + x1; / * isir, awtomatikament pressati fuq x1 INT, is-somma, preses awtomatiku riżultati largeInt u assenjati lill x * /
x = y1 + y2 / / jsir

Share u gost:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • email
Tags:
  1. hihipro
    3 Mejju, 2009 fil-23:36

    I kienet tagħmel eżerċizzi relatati ma 'numri kbar, iżda mhux ittrattati BJT NTN fade, inti tista' tagħti l-kodiċi tagħha ma jkunx il-LE kbira!
    Grazzi daqshekk! (*)(*)(*)

  2. Kif
    5 MEJJU, 2009 fil-00:29

    #:-S Twil ilu, mhux ċert jekk mibrum. Sib bejgħ ġodda li nstabu : D
    Tiegħek hawn :-)

  3. Rocket80
    15 Novembru, 2009 fil-12:35
    : L My friend, I wkoll nixtieq akne kollha interi kbar, li qisu l-konnessjoni jew kopja u mbagħad die, ma tistabbilixxi l- ^:) ^
  4. rocket80
    20 Nov 2009 fil-16:13
    KIF inti għeżież, int riċerka fuq l-operaturi ta 'konverżjoni tat-tip, li huma misjuba tfittxija żgħir ħafna fuq google dwar dan id-dokument, inti tista' tirreferi lilek innifsek ftit jew ebda kumment, grazie ħafna djar :-P
    Kif
    20 Nov 2009 20:22

    Kollha dawn il-problemi jkunu sfurzati mudell tagħhom deskritti hawn fuq, imbagħad : D