13.01.2015 Views

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

✐<br />

✐<br />

✐<br />

“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 97 — #135<br />

✐<br />

3.7. Los operadores y su uso<br />

Los rvalues de todas las asignaciones pued<strong>en</strong> ser, por supuesto, mucho mas complejos.<br />

Introducción a las macros del preprocesador<br />

Observe el uso de la macro PRINT() para ahorrar líneas (y errores de sintaxis!).<br />

Las macros de preprocesador se nombran tradicionalm<strong>en</strong>te con todas sus letras <strong>en</strong><br />

mayúsculas para que sea fácil distinguirlas - apr<strong>en</strong>derá más adelante que las macros<br />

pued<strong>en</strong> ser peligrosas (y también pued<strong>en</strong> ser muy útiles).<br />

Los argum<strong>en</strong>tos de de la lista <strong>en</strong>tre paréntesis que sigue al nombre de la macro<br />

son sustituidos <strong>en</strong> todo el código que sigue al paréntesis de cierre. El preprocesador<br />

elimina el nombre PRINT y sustituye el código donde se invoca la macro, de modo<br />

que el compilador no puede g<strong>en</strong>erar ningún m<strong>en</strong>saje de error al utilizar el nombre<br />

de la macro, y no realiza ninguna comprobación de sintaxis sobre los argum<strong>en</strong>tos<br />

(esto lo último puede ser b<strong>en</strong>eficioso, como se muestra <strong>en</strong> las macros de depuración<br />

al final del capítulo).<br />

3.7.3. Operadores relacionales<br />

Los operadores relacionales establec<strong>en</strong> una relación <strong>en</strong>tre el valor de los operandos.<br />

Produc<strong>en</strong> un valor booleano (especificado con la palabra reservada bool <strong>en</strong> <strong>C++</strong>)<br />

true si la relación es verdadera, y false si la relación es falsa. Los operadores relacionales<br />

son: m<strong>en</strong>or que (), m<strong>en</strong>or o igual a (=), equival<strong>en</strong>te (==), y distinto (!=). Se pued<strong>en</strong> utilizar con todos los tipos de datos<br />

predefinidos <strong>en</strong> C y <strong>C++</strong>. Se pued<strong>en</strong> dar definiciones especiales para tipos definidos<br />

por el usuario <strong>en</strong> <strong>C++</strong> (apr<strong>en</strong>derá más sobre el tema <strong>en</strong> el Capítulo 12, que cubre la<br />

sobrecarga de operadores).<br />

3.7.4. Operadores lógicos<br />

Los operadores lógicos and (&&) y or (||) produc<strong>en</strong> true o false basándose <strong>en</strong><br />

la relación lógica de sus argum<strong>en</strong>tos. Recuerde que <strong>en</strong> C y <strong>C++</strong>, una condición es<br />

cierta si ti<strong>en</strong>e un valor difer<strong>en</strong>te de cero, y falsa si vale cero. Si se imprime un bool,<br />

por lo g<strong>en</strong>eral verá un 1’ para true y 0 para false.<br />

Este ejemplo utiliza los operadores relacionales y lógicos:<br />

//: C03:Boolean.cpp<br />

// Relational and logical operators.<br />

#include <br />

using namespace std;<br />

int main() {<br />

int i,j;<br />

cout > i;<br />

cout > j;<br />

cout

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!