UNIVERSIDAD NACIONAL DE CHIMBORAZO CHIMBORAZO FACULT ACULTAD DE INGENI INGENIERI ERIA A
ESCUELA DE INGENIERÍA EN SISTEMÁS Y COMPUTACIÓN PROGRAMACION II TEMA: RELACIONES CON
CLASES
SEMESTRE: TERCER SEMESTRE AUTOR: SANTIAGO MORENO
Tabla de c!"e!#d 1. RESUMEN....................................................................................................................3 2. INTRODUCCION.........................................................................................................4 3. DESARROLLO TEMATICO........................................................................................5 3.1 PUNTOS DE ENTRADA.......................................................................................5 3.2 ARGUMENTOS Y PARAMETROS.......................................................................5 3.3 C++ 11.....................................................................................................................5 3.3.1 TIPOS FUNDAMENTLES..............................................................................6 3.3.2 ENUMERACIONES........................................................................................6 3.3.3 CLASES Y ESTRUCTURAS..........................................................................8 3.4 FUNCIONES Y CLASES.......................................................................................8 3.4.1 DECLARACIONES VS DEFINICIONES......................................................8 3.4.2 FUNCIONES....................................................................................................8 3.4.3 FUNCIONES MIEMBRO................................................................................9 3.4.4 NIVELES DE PROTECCIÓN Y ESPECIFICADORES DE ACCESO..........9 3.4.5 ARCIVOS ENCABE!ADOS PRECOMPILADOS...................................1" 3.5 OVER#IDE $CONSTRUCTORES% DESTRUCTORES Y OPERADORES&.....1" 3.5.1 CONSTRUCTORES PARAMETRI!ADOS.................................................11 3.5.2 CONSTRUCTORES DE CONVERSIÓN.....................................................11 3.6 PLANTILLAS.......................................................................................................11 3.6.1 FUNCIONES DE PLANTILLAS..................................................................11 4. CONCLUSIONES.......................................................................................................12 5. BIBLIOGRAFIA.........................................................................................................12
$% RESUMEN El l#b& 'C(( SUCCINCTLY )a*+da a a,&e!de& "dala- ,#e.a- /+!da0e!"ale- de C (( ,a&a 1+e ,+eda e!"e!de& l- ,&*ec"- * 0+e-"&a- e-c"a- e! C (( * c0e!.a& a e-cb#& -+- ,&,#- ,&2&a0a- e! C ( (% Ade03- a*+da&a e! la c0,&e!-#4! de la- d#-"#!"a/+!c#!e- * c4d#2 del ,&2&a0a V#-+al S"+d# $5%
5% INTRODUCCION E-"e e!-a* e-"3 ba-ad e! el l#b& C(( SUCCINCTLY 1+e /+e e-c" ,a&a a*+da& a lde-a&&llad&e- ,&/e-#!ale- de c 67 ,a&a a a,&e!de& le!2+a8e c (( de ,&2&a0ac#4! 0de&!% El b8e"#9 de e-"e l#b& e- el de a,&9ec:a& -+ c!c#0#e!" e! C6 e;#-"e!"e c! el
=% DESARROLLO TEMATICO =%$ PUNTOS DE ENTRADA E! C 67 el ,+!" de e!"&ada de +! ,&2&a0a e- +! 0>"d e-"3"#c lla0ad MAIN% A 0e!+d ! -e 9e de-de d#-"#!"- 0a&c- ?,& e8e0,l7 S#l9e&l#2:"@7 ,e& e-"3 a:7 e! al2+!a ,a&"e7 *a 1+e -#! ella el -#-"e0a ,e&a"#9 ! -ab&a ,& d4!de e0,e.a& la e8ec+c#4! de -+ ,&2&a0a% El ,+!" de e!"&ada de +! ,&2&a0a e! C (( e- la /+!c#4! MAIN% U!a 9e&-#4! -#0,le -e 9e a- int main(int argc, char* argv[]) { // Your program starts here. // Returning 0 signifies success. return 0; }
=%5 ARGUMENTOS Y PARAMETROS U! a&2+0e!" e- +! 9al& 1+e -e ,a-a a +!a /+!c#4! c+a!d -e le lla0a e! +! ,&2&a0a7 0#e!"&a- 1+e +! ,a&30e"& e- ,a&"e de la e-,ec#! le #!d#ca al ,&2&a0ad& c40 ,d&a "&a"a& e-e 9al&% U! ,a&30e"& !&0al0e!"e ,&,&c#!a +! !0b&e ,& el 1+e e-e 9al& -e ,+ede :ace& &e/e&e!c#a7 a+!1+e C (( !- ,e&0#"e /&ece& -4l +! "#, -e e-"3 bl#2ad a "e!e& +! ,a&30e"& e! ,a&"#c+la&%
=%= C(( $$ E! 5$$7 +!a !+e9a 9e&-#4! ,!c#,al e-"3!da& del le!2+a8e C (( /+e ad,"ada ,& el 2&+, de "&aba8 de ISO IEC &e-,!-able del d#-e * de-a&&ll de C (( c0 le!2+a8e% E! c0,a&ac#4! c! C (( * C (( =7 C (( $$ -e -#e!"e c0 +! #d#0a d#/e&e!"e% Deb#d a 1+e C (( $$ e- "a! !+e97 ! e;#-"e! c0,#lad&e- 1+e a,*a! "da- laca&ac"e&-"#ca- #!d#9#d+ale-7 * :a* al2+!- 1+e a,*a! 0e!- 1+e "&-% V#-+al C (( * la- ca&ac"e&-"#ca- 1+e #0,le0e!"a e! -+ 9e&-#4! 03- ac"+al7 a+!1+e -e a 0e!c#!ad al2+!a- ca&ac"e&-"#ca- 1+e V#-+al C (( ! -,&"a ac"+al0e!"e * l :a! -ealad%
=%=%$ TIPOS FUNDAMENTLES C (( c!"#e!e la- 0#-0a- ,alab&a- 1+e C6 ,& e8e0,l #!"% E-" ! e- -&,&e!de!"e dad 1+e a0b- -! le!2+a8e- de ,&2&a0ac#4! c0 C% M#e!"&a- 1+e C 6 de
enum
}; int 2pmain(int /*argc*/, 2pchar* /*argv*/[]) { -!avor f 3 +ani!!a; f 3 1int; // 4his is !ega! since the -!avor enum is an un5scope" enum. &o!or c 3 &o!or'range; //c 3 'range; // 4his is i!!ega! since the &o!or enum is a scope" enum. st"string f!avor; st"string co!or; sitch (c) { case &o!orRe" co!or 3 6%Re"%; rea7; case &o!or'range co!or 3 6%'range%; rea7; case &o!orYe!!o co!or 3 6%Ye!!o%; rea7; case &o!or!ue co!or 3 6%!ue%; rea7; case &o!orn"igo co!or 3 6%n"igo%; rea7; case &o!or+io!et co!or 3 6%+io!et%; rea7; "efau!t co!or 3 6%8n7non%; rea7; } sitch (f) { case +ani!!a f!avor 3 6%+ani!!a%; rea7;
case &hoco!ate f!avor 3 6%&hoco!ate%; rea7; case traerr f!avor 3 6%traerr%; rea7; case 1int f!avor 3 6%1int%; rea7; "efau!t rea7; } st"cout ## 6%-!avor is % ## f!avor.c2str() ## 6% (% ## f ## 6%). &o!or is % ## co!or.c2str() ## 6% (% ## static2cast#int$(c) ## 6%).% ## st"en"! ## 6%4he si9e of -!avor is % ## si9eof(-!avor) ## 6%.% ## st"en"! ## 6%4he si9e of &o!or is % ## si9eof(&o!or) ## 6%.% ## st"en"!;
}
return 0;
=%=%= CLASES Y ESTRUCTURAS La d#/e&e!c#a e!"&e +!a cla-e * +!a e-"&+c"+&a e! C (( e-#0,le0e!"e 1+e de +!a e-"&+c"+&a 0#e0b&- de/ec" ,bl#ca 0#e!"&a- 1+e +! de/ec" 0#e0b&- de la cla-e a la , ada% E- e"d% Ell- -! ,& l de03- la 0#-0a% N :a* de "#, 9al& 9e&-+"#, de &e/e&e!c#a d#-"#!c#4! e;#-"e e! C 6% N&0al0e!"e -e 9e&3! ,&2&a0ad&e- 1+e +"#l#.a! cla-e- de "#,c0,le8- ?c0b#!ac#!e- de da"- * /+!c#!e-@ * e-"&+c"+&a- de -#0,le- da"- de -4l "#,-% N&0al0e!"e7 -e "&a"a de +!a elecc#4! e-"#l-"#ca 1+e &e,&e-e!"a l- &2e!e- ! e!"ad- a b8e"- de e-"&+c"+&a e! C7 ,& l 1+e e- /3c#l de d#/e&e!c#a& &3,#da0e!"e e!"&e +! c!"e!ed& de da"- -#0,le /&e!"e a +! b8e" e! "da &e2la 0#&a!d ,a&a 9e& -# -e "&a"a de +!a e-"&+c"+&a +!a cla-e%
=% FUNCIONES Y CLASES =%%$ DECLARACIONES VS DEFINICIONES
E! C 67 cla-e- * "&- "#,- -e decla&a! * -e de- de 0l"#,le- a&c:#9- ! ca0b#a la c0b#!ac#4! de la decla&ac#4! * de
voi"
voi" =rintoo!(oo! va!ue); }
=%%= FUNCIONES MIEMBRO La- /+!c#!e- 0#e0b& -! ,a&"e de +!a cla-e7 e-"&+c"+&a +!#4!% F+!c#!e- 0#e0b& e-"3"#ca- ,+ede! lla0a& a "&a- /+!c#!e0#e0b& de cla-e e-"3"#c7 #!de,e!d#e!"e0e!"e del !#9el de ,&"ecc#4!% F+!c#!e- 0#e0b& e-"3"#ca- "a0b#>! ,+ede! "e!e& acce- a da"de l- 0#e0b&- de cla-e e-"3"#c- *a -ea e;,lc#"a0e!"e ?e- dec#& S0eCla-- S0eFla" 5%/@ #0,lc#"a0e!"e ?e- dec#& S0eFla" 5%/@7 #!de,e!d#e!"e0e!"e del !#9el de ,&"ecc#4!%
=%% NIVELES DE PROTECCIÓN Y ESPECIFICADORES DE ACCESO La- /+!c#!e- 0#e0b& * da"- de l- 0#e0b&- "#e!e! "&e- ,-#blee-,ec#
•
•
,+bl#c ,&"ec"ed , a"e
E-"- e-,ec#ome&!ass(voi"); int ?""4onts(int, int); voi" tore?tring(const char2t*); private oo! &hec7-ornt?""ition'verf!o(int, int); pu!ic int ome=u!icnteger; protecte" st"string m2store"tring; };
=%%K ARCHIVOS ENCABEZADOS PRECOMPILADOS U! a&c:#9 de e!cabe.ad ,&e c0,#lad e- +! "#, e-,ec#al de a&c:#9 de cabece&a% Al #2+al 1+e +! a&c:#9 de cabece&a !&0al7 1+e ,+ede ,e2a& a0b- #!cl+*e! decla&ac#!e- * de
=%K OVERQIDE OPERADORES@
?CONSTRUCTORES7
DESTRUCTORES
Y
E! C (( l- c!-"&+c"&e- -! 03- c0,l#cad- 1+e e! C 6% Ya 1+e :a* c#!c "#,- de c!-"&+c"&e-% Se !ece-#"a -abe& l 1+e -!7 l 1+e :ace!7 * l 1+e ,a&ece!% S# !7 +-"ed ,d&a e!c!"&a&-e /&e!"e a al2+!- e&&&e- 0+* c!/+-a- e&&&e- del c0,#lad&% A1+ +! e8e0,l +ehic!e some+ehic!e 3 vehic!e;
U! c!-"&+c"& ,& de/ec" -e ,+ede lla0a& -#! a&2+0e!"-% U!a cla-e ! ,+ede "e!e& 03- de +! c!-"&+c"& ,& de/ec" -# -e de! e- ,-#ble de! el c!-"&+c"& ,& de/ec" ,a&a +!a cla-e% N :a* !ada e-,ec#al ace&ca de c!-"&+c"&e,a&a0e".ad- e! C ((% =%K%5 CONSTRUCTORES DE CONVERSIÓN
U! c!-"&+c"& de c!9e&-#4! "#e!e al 0e!- +! ,a&30e"&% S# :a* 03- de +!7 e!"!ce- e-- ,a&30e"&- ad#c#!ale- debe! "e!e& a&2+0e!"- ,& de/ec"%
=% PLANTILLAS La- ,la!"#lla- "#e!e! +! ,&,4-#" e! C (( a-# c0 "a0b#>! e! C 6% Ell- le ,e&0#"e! &e+"#l#.a& el c4d#2 -#! !ece-#dad de e-cb#& +!a /+!c#4! cla-e ,a&a cada 9aa!"e 1+e de-ee% E! l"#0a #!-"a!c#a7 la- ,la!"#lla- ,+ede! lle2a& a -e& 0+* c0,le8% La b#bl#"eca e-"3!da& C (( de0+e-"&a el ,de& * la c0,le8#dad de la- ,la!"#lla- a9a!.ada-% A ,e-a& de ell7 ! e- !ece-a +! c!c#0#e!" a9a!.ad de ,la!"#lla- ,a&a +-a& de 0a!e&a e/ec"#9a% La c0,&e!-#4! de l- /+!da0e!"- de la- ,la!"#lla- de C (( le a*+da&3 a de-bl1+ea& +!a ca!"#dad -#2!#
% CONCLUSIONES El ,&e-e!"e "&aba8 &eal#.ad d# c!ce& -b&e la #0,&"a!c#a de la ,&2&a0ac#4! e! C((%Ade03- 1+e a*+d e! la c0,&e!-#4! de V#-+al S"+d# $5 * /&"alece&3 !+e-"&- c!c#0#e!"- e! !+e-"&a ca&&e&a%
K% BIBLIOGRAFIA LIBRO 'C(( SUCCINCTLY ' AUTOR 'MICHAEL B% MCLAUGHLIN) EDITORIAL 'SYNCFUSION)