Introducción a Patrones de Diseño en C++ con Qt4/1.13 Identificadores, Tipos y Literales

Versión para imprimir esta pagina

Identificadores, Tipos y Literales

editar

Los identificadores son nombres que son usados dentro de programas C++ para funciones, parámetros. variables, constantes, clases y tipos.

Un identificador consiste en una secuencia de letras, dígitos y guiones que no comiencen con un dígito. Un identificador no puede ser una palabra reservada. En el Apéndice A verás una lista de estos. El estándar no especifica un límite de tamaño para un identificador, pero ciertas implementaciones de C++ solo examinan los primeros 31 caracteres para diferenciar los identificadores.

Una literal es un valor constante que aparece en cualquier lugar dentro del programa. Debido a que cada valor tiene un tipo, cada literal tiene un tipo también. Esto hace posible el tener literales para cada tipo de datos nativo, y también literales de cadenas de caracteres. La Tabla 1.1 muestra algunos ejemplos de literales y sus tipos.

Tabla 1.1

editar

Plantilla:Tabla


Las literales de cadena son especiales en C++, debido a sus raices históricas en el lenguaje C. El Ejemplo 1.15 muestra como ciertos caracteres necesitan ser escapados dentro de los delimitadores de cadena de comilla doble:

Ejemplo 1.15

editar
Ejemplo: Ejemplo 1.15 src/early-examples/literals/qliterals.cpp
QString str = charstr; cadenas al estilo C pueden ser convertidas a QString
#include <QTextStream>
#include <QString>

int main() {
    const char* charstr = "Esta es una cadena muy larga "
                " por eso continuaré en la siguiente línea";
    QTextStream cout(stdout);  
    QString str = charstr;
    cout << str << endl;
    cout << "\nA\tb\\c\'d\"" << endl;
    return 0;
}


Compilaremos y correremos de la forma en que describimos antes:

src/early-examples/literals> qmake -project
src/early-examples/literals> qmake
src/early-examples/literals> make
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include /qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I. -o qliterals.o qliterals.cpp
g++  -o literals qliterals.o    -L/usr/lib -lQtGui -lQtCore -lpthread
src/early-examples/literals> ./literals


La salida debería lucir algo parecido a esto:


Esta es una cadena muy larga por eso continuaré en la siguiente línea

A       b\c'd"


Nota que este programa muestra la forma de evitar líneas demasiado largas cuando trabajamos con literales de cadena. Estas pueden ser rotas en cualquier carácter de espacio en blanco y son concatenadas automáticamente usando esta sintaxis.


Versión para imprimir esta pagina