Attention! Your ePaper is waiting for publication!
By publishing your document, the content will be optimally indexed by Google via AI and sorted into the right category for over 500 million ePaper readers on YUMPU.
This will ensure high visibility and many readers!
✐ ✐ ✐ “Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 52 — #90 ✐ Capítulo 2. Construir y usar objetos larm<strong>en</strong>te útil cuando los listados de código ti<strong>en</strong><strong>en</strong> restricciones de anchura. //: C02:Concat.cpp // Character array Concat<strong>en</strong>ation #include using namespace std; int main() { cout >. Este operador espera como parámetro algún tipo de <strong>en</strong>trada. Por ejemplo, si introduce un parámetro de tipo <strong>en</strong>tero, él espera un <strong>en</strong>tero de la consola. Aquí hay un ejemplo: //: C02:Numconv.cpp // Converts decimal to octal and hex #include using namespace std; int main() { int number; cout > number; cout
✐ ✐ ✐ “Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 53 — #91 ✐ 2.5. Introdución a las cad<strong>en</strong>as 2.4.3. Llamar a otros programas Mi<strong>en</strong>tras que el modo típico de usar un programa que lee de la <strong>en</strong>trada estándar y escribe <strong>en</strong> la salida estándar es d<strong>en</strong>tro de un shell script Unix o <strong>en</strong> un fichero batch de DOS, cualquier programa se puede llamar desde d<strong>en</strong>tro de un programa C o <strong>C++</strong> usando la llamada a la función estándar system() que está declarada <strong>en</strong> el fichero de cabecera :. //: C02:CallHello.cpp // Call another program #include // Declare "system()" using namespace std; int main() { system("Hello"); } ///:~ Para usar la función system(), hay que pasarle un array de caracteres con la línea de comandos que se quiere ejecutar <strong>en</strong> el prompt del sistema operativo. Puede incluir los parámetros que utilizaría <strong>en</strong> la línea de comandos, y el array de caracteres se puede fabricar <strong>en</strong> tiempo de ejecución (<strong>en</strong> vez de usar un array de caracteres estático como se mostraba arriba). El comando se ejecuta y el control vuelve al programa. Este programa le muestra lo fácil que es usar C plano <strong>en</strong> <strong>C++</strong>; sólo incluya la cabecera y utilice la función. Esta compatibilidad asc<strong>en</strong>d<strong>en</strong>te <strong>en</strong>tre el C y el <strong>C++</strong> es una gran v<strong>en</strong>taja si está apr<strong>en</strong>di<strong>en</strong>do <strong>C++</strong> y ya t<strong>en</strong>ía conocimi<strong>en</strong>tos de C. 2.5. Introdución a las cad<strong>en</strong>as Un array de caracteres puede ser bastante útil, aunque está bastante limitado. Simplem<strong>en</strong>te son un grupo de caracteres <strong>en</strong> memoria, pero si quiere hacer algo útil, debe manejar todos los pequeños detalles. Por ejemplo, el tamaño de un array de caracteres es fijo <strong>en</strong> tiempo de compilación. Si ti<strong>en</strong>e un array de caracteres y quiere añadirle más caracteres, t<strong>en</strong>drá que saber mucho sobre ellos (incluso manejo dinámico de memoria, copia de array de caracteres, y concat<strong>en</strong>ación) antes de conseguir lo que desea. Esta es exactam<strong>en</strong>te la clase de cosas que desearíamos que hiciera un objeto por nosotros. La clase string (cad<strong>en</strong>a) del <strong>C++</strong> Estándar ha sido diseñada para que se <strong>en</strong>cargue y oculte las manipulaciones de bajo nivel de los arrays de caracteres que antes t<strong>en</strong>ía que realizar el programador de C. Estas manipulaciones han sido una fu<strong>en</strong>te de constantes pérdidas de tiempo y errores desde los oríg<strong>en</strong>es del l<strong>en</strong>guaje C. Aunque hay un capítulo <strong>en</strong>tero dedicado a la clase string <strong>en</strong> el Volum<strong>en</strong> 2 de este libro, las cad<strong>en</strong>as son tan importantes y facilitan tanto la vida que las pres<strong>en</strong>taré aquí para usarlas lo antes posible <strong>en</strong> el libro. Para usar las cad<strong>en</strong>as debe incluir el fichero de cabecera . La clase s- tring se <strong>en</strong>cu<strong>en</strong>tra <strong>en</strong> el espacio de nombres std por lo que se necesita usar la directiva using. Gracias a la sobrecarga de operadores, la sintaxis del uso de las cad<strong>en</strong>as es muy intuitiva: //: C02:HelloStrings.cpp // The basics of the Standard <strong>C++</strong> string class #include 53 ✐ ✐ ✐ ✐