sintaxis c++
-
Author
marygaby-iribarren -
Category
Documents
-
view
149 -
download
5
Embed Size (px)
Transcript of sintaxis c++
GUA DE SINTAXIS DEL LENGUAJE C++ (ESTNDAR C++ ANSI)(Fundamentos de Programacion de Luis Aguilar)
GUA DE SINTAXIS DEL LENGUAJE C++ ......................................................................1B.1. ELEMENTOS DEL LENGUAJE............................................................................................................................................3 B.1.1. CARACTERES .......................................................................................................................................................................3 B.1.2. COMENTARIOS ....................................................................................................................................................................3 B.1.3. IDENTIFICADORES ................................................................................................................................................................3 B.1.4.PALABRAS RESERVADAS .......................................................................................................................................................4 B.2. TIPOS DE DATOS ..................................................................................................................................................................5 B.2.1. VERIFICACIN DE TIPOS .......................................................................................................................................................5 B.3. CONSTANTES ........................................................................................................................................................................5 B.3.1. DECLARACIN DE CONSTANTES............................................................................................................................................6 B.4. CONVERSIN DE TIPOS......................................................................................................................................................6 B.5. DECLARACIN DE VARIABLES ........................................................................................................................................6 B.6. OPERADORES........................................................................................................................................................................6 B.6.1. OPERADORES ARITMTICOS..................................................................................................................................................7 B.6.2. OPERADORES DE ASIGNACIN ..............................................................................................................................................8 B.6.3. OPERADORES LGICOS Y RELACIONALES...............................................................................................................................8 B.6.4. OPERACIONES DE MANIPULACIN DE BITS .............................................................................................................................9 B.6.5. EL OPERADOR SIZEOF ........................................................................................................................................................ 10 B.6.6. PRIORIDAD Y ASOCIATIVIDAD DE OPERADORES .................................................................................................................... 10 B.6.7. SOBRECARGA DE OPERADORES ........................................................................................................................................... 10 B.7. ENTRADAS Y SALIDAS BSICAS..................................................................................................................................... 10 B.7.1.SALIDA .............................................................................................................................................................................. 11 B.7.2. ENTRADA .......................................................................................................................................................................... 11 B.7.3. MANIPULADORES .............................................................................................................................................................. 12 B.8. SENTENCIAS..................................................................................................................................................................... 12 B.8.1.SENTENCIA DE DECLARACIN.............................................................................................................................................. 12 B.8.2.SENTENCIAS EXPRESIN ..................................................................................................................................................... 13 B.8.3.SENTENCIAS COMPUESTAS .................................................................................................................................................. 13 B.9. SENTENCIAS CONDICIONALES: IF ................................................................................................................................ 13 B.9.1. SENTENCIAS IF_ELSE ANIDADAS ....................................................................................................................................... 14 B.9.2. SENTENCIAS DE ALTERNATIVA MLTIPLE: SWITCH ............................................................................................................. 15 B.10 .BUCLES: SENTENCIAS REPETITIVAS .......................................................................................................................... 15 B.10.1. SENTENCIA WHILE ........................................................................................................................................................... 15 B.10.2. SENTENCIA DO................................................................................................................................................................. 16 B.10.3. LA SENTENCIA FOR.......................................................................................................................................................... 16 B.10.4. SENTENCIAS BREAK Y CONTINUE .................................................................................................................................. 17 B.10.5. SENTENCIA NULA............................................................................................................................................................. 17 B.10.6. SENTENCIA RETURN ....................................................................................................................................................... 17 B.11. PUNTEROS (APUNTADORES)2 ........................................................................................................................................ 17 B.11.1.DECLARACIN DE PUNTEROS ............................................................................................................................................ 18 B.11.2. PUNTEROS A ARRAYS ....................................................................................................................................................... 18 B.11.3. PUNTEROS A ESTRUCTURAS ............................................................................................................................................. 19 B.11.4. PUNTEROS A OBJETOS CONSTANTES ................................................................................................................................. 19 B.11.5. PUNTEROS A VOID ........................................................................................................................................................... 19 B.11.6 PUNTEROS Y CADENAS ..................................................................................................................................................... 19
Pgina 1 de 28
B.11.7.ARITMTICA DE PUNTEROS ............................................................................................................................................... 20 B.12. LOS OPERADORES NEW Y DELETE .......................................................................................................................... 20 B.13. ARRAYS .............................................................................................................................................................................. 21 B.14. ENUMERACIONES, ESTRUCTURAS Y UNIONES ........................................................................................................ 22 B.15. CADENAS............................................................................................................................................................................ 23 B.16. FUNCIONES........................................................................................................................................................................ 24 B.16.1. DECLARACIN DE FUNCIONES .......................................................................................................................................... 24 B.16.2. DEFINICIN DE FUNCIONES ............................................................................................................................................... 24 B.16.3. ARGUMENTOS POR OMISIN ............................................................................................................................................. 25 B.16.4. FUNCIONES EN LNEA (INLINE) ........................................................................................................................................ 25 B.16.5. SOBRECARGA DE FUNCIONES ............................................................................................................................................ 26 B.16.6. EL MODIFICADOR CONST ................................................................................................................................................. 26 B.16.7. PASO DE PARMETROS A FUNCIONES ................................................................................................................................ 27 B.16.8. PASO DE ARRAYS ............................................................................................................................................................. 27
Pgina 2 de 28
C++ es considerado un C ms grande y potente. La sintaxis de C++ es una extensin de C, al que se han aadido numerosas propiedades, fundamentalmente orientada a objetos. ANSI C ya adopt numerosas caractersticas de C++, por lo que la migracin de C a C++ no suele ser difcil. En este apndice se muestran las reglas de sintaxis del estndar clsico de C++ recogidas en al Annotated Manual (ARM) de Stroustrup y Ellis, as como las ltimas propuestas incorporadas al nuevo borrador de C++ ANSI, que se incluyen en las versiones 3 (actual) y 4 (futura de AT&T C++).
B.1. ELEMENTOS DEL LENGUAJEUn programa en C++ es una secuencia de caracteres que se agrupan en componentes lxicos (tokens) que comprenden el vocabulario bsico del lenguaje. Estos componentes de lxico son: palabras reservadas, identificadores, constantes, constantes de cadena, operadores y signos de puntuacin.
B.1.1. CaracteresLos caracteres que se pueden utilizar para construir elementos del lenguaje (componentes lxicos o tokens) son: abcdefghi jklmnopqrstuvwxyz ABCDEFCHIJKLMNOPQRSTUVWXYZ 0123456789 caracteres espacio (blancos y tabulaciones)
B.1.2. ComentariosC++ soporta dos tipos de comentarios. Las lneas de comentarios al estilo C y C ANSI, tal como: /* Comentario estilo C */ /* Comentario mas extenso, pero tambin es estilo C y ANSI C */ El otro tipo de comentarios se pueden utilizar por los programadores de C++: La versin /*...* / se utiliza para comentarios que excedan una lnea de longitud y la versin //... se utiliza, slo, para comentarios de una lnea. Los comentarios no se anidan.
B.1.3. IdentificadoresLos identificadores (nombres de variables, constantes,...) deben comenzar con una letra del alfabeto (mayscula o minscula) o con un carcter subrayado, y pueden tener uno o ms caracteres. Los caracteres segundo y posteriores pueden ser: letras, dgitos o un subrayado, no permitindose caracteres no alfanumricos ni espacios. tescprueba // legal Xl23 // legal multi_palabra // legal var25 // legal l5var // no legal C++ es sensible a las maysculas. Paga_mes es un identificador distinto a paga_mes
Una buena prctica de programacin aconseja utilizar identificadores significativos que ayudan a documentar un programa. nombre apellidos salario precio_neto
Pgina 3 de 28
B.1.4.Palabras reservadasLas palabras reservadas o claves no se deben utilizar como identificadores, debido a su significado estricto en C++; tampoco se deben redefinir. La Tabla B. 1 enumera las palabras reservadas de C++ segn el ARM(Siglas del libro de BJARNE STROUSTRUP en el que se definen las reglas de sintaxis del lenguaje C++ estndar). Tabla B.1. Palabras reservadas de C++ asm* auto break case catch* char class* const continue default delete* do double else enurn extern float for friend* goto if inline* int long new* operator* private* protected* public* register return short signed sizeof static struct switch template* this* throw* try typedef union unsigned virtual* void volatile while
*Estas palabras no existen en ANSI C. Los diferentes compiladores comerciales de C++ pueden incluir, adems, nuevas palabras reservadas. Estos son los casos de Borland, Microsoft y Sysmantec. Tabla B.2. Palabras reservadas de Turbo/Borland C++ _ds interrup short else _loadds signed enum long sizeof _es _near _ss export near static extern new struct far operator switch far pascal template float pascal this for private typedef friend protected union goto pubic unsigned huge register virtual if return void inline _saveregs volatile int _seg while
asm auto break case catch _cdecl _cdecl char class const continue _cs default delete do _double
Tabla B.3. Palabras reservadas de Microsoft Visual C/C++ 1.5/2.0 asm auto based break case _cdecl char const continue _declspec default dllexport dllimport do doble else int enum _interrupt _except _leave _export _loadds extern long _far maked _fastcall _near _finally _pascal float register for return _fortran _saveregs goto _self _huge _segment if _segname _inline short signed sizeof static _stcall struct switch thread _try typedef union unsigned void volatile while
El comit ANSI ha aadido nuevas palabras reservadas (Tabla B.4). Tabla B.4. Nuevas palabras reservadas de ANSI C++ bool cons_cast dynamic_cast false mutable namespace reinterpretcast static_cast true typeid using wchart
Pgina 4 de 28
B.2. TIPOS DE DATOSLos tipos de datos simples en C++ se dividen en dos grandes grupos: integrales (datos enteros) y de coma flotante (datos reales). La Tabla B.5. muestra los diferentes tipos de datos en C++, Tabla B.5. Tipos de datos simples en C++ char short usigned short float signed char int unsigned double unsigned char long unsigned long long double
Los tipos derivados en C++ pueden ser: enumeraciones (enum), estructuras (struct), uniones (union), arrays, clases (class y struct), uniones y enumeraciones annimas, punteros,
B.2.1. Verificacin de tiposLa verificacin o comprobacin de tipos en C++ es ms rgida (estricta) que en C. Algunas consideraciones a tener en cuenta son: Usar funciones declaradas. Esta accin es ilegal en C++, y est permitida en C: int main() { //... printf(x) return 0; } Fallo al devolver un valor de una funcin. Una funcin en C++ declarada con un tipo determinado de retomo, ha de devolver un valor de ese tipo. En C, est permitido no seguir la regla. Asignacin de punteros void. La asignacin de un tipo void* a un puntero de otro tipo se debe hacer con una conversacin explcita en C++. En C, se realiza implcitamente. Inicializacin de constantes de cadena. En C++ se debe proporcionar un espacio para el carcter de terminacin nulo cuando se inicializan constantes de cadena. En C, se permite la ausencia de ese carcter int main() { //...... char car[7] = Cazorla; //...... return 0; } Una solucin al problema que funciona tanto en C como en C++ es: char car [] ="Cazorla";
//C int printf(x) //C++ es ilegal, ya que printf no esta declarada
// legal en C //error en C++
B.3. CONSTANTESC++ contiene constantes para cada tipo de dato simple (integer, char,...). Las constantes pueden tener dos sufijos, u, l y f. Que indican tipos unsigned, long y float, respectivamente. As mismo, se pueden aadir los prefijos o y ox, que representan constantes octales y hexadecimales. 456 0456 0x476 // constante enteras : decima1, octal , hexadecimal 1231 123ul // constante enteras :long, unsigned, long B b 4 // constante de tipo char 3.1415f // constante reales de diferente posicin cadena de caracteres // Constante de cadena
Las cadenas de caracteres se encierran entre comillas, y las constantes de un solo carcter se encierran entre comillas simples.
Pgina 5 de 28
// cadena vaca \0
B.3.1. Declaracin de constantesEn C++, los identificadores de variables/constantes se pueden declarar constantes, significando que su valor no se puede modificar. Esta declaracin se realiza con la palabra reservada const. contar double PI= 3.11416; const char BLANCO = ; const double PI_EG = -I; const double DOBLE_I = 2 * PI ; El modificador de tipos const se utiliza en C++, tambin para proporcionar proteccin de slo lectura para variables y parmetros de funciones. Las funciones miembro de una clase que no modifican los miembros dato a que acceden pueden ser declarados const. Este modificador evita tambin que parmetros por referencia sean modificados: void copy (const char * fuente, char * destino):
B.4. CONVERSIN DE TIPOSLa conversiones explcitas se fuerzan mediante moldes (casts). La conversin forzosa de tipos de C tiene el formato clsico: (tipo) expresion C++ ha modificado la notacin anterior por una notacin funcional como alternativa sintctica: nombre del tipo (expresion) Las notaciones siguientes son equivalentes: float(x); //notacion de casteo en C++ (float)x; //notacion de casteo en C
B.5. DECLARACIN DE VARIABLESEn ANSI C, todas las declaraciones de variables y funciones se deben hacer al principio del programa o funcin. Si se necesitan declaraciones adicionales, el programador debe volver al bloque de declaraciones al objeto de hacer los ajustes o inserciones necesarios. Todas las declaraciones deben hacerse antes de que se ejecute cualquier sentencia. As, la declaracin tpica en C++, NombreTipo Nombrevariablel, Nombrevariable2; proporciona declaraciones tales como: int saldo, meses; double clipper, salario; Al igual que en C, se pueden asignar valores a las variables en C++: int mes =4, dia, anio=1995; doble salario = 45.675; En C++, las declaraciones de variables se pueden situar en cualquier parte de un programa. Esta caracterstica hace que el programador declare sus variables en la proximidad del lugar donde se utilizan las sentencias de su programa. El siguiente programa es legal en C++ pero no es vlido en C: #include int main () { int i ; for ( i= 0; i* */% + > < >= = = = & ^ | && || = += - = *= /= %= >>= > >=