Introducción a Patrones de Diseño en C++ con Qt4/1.13 Identificadores, Tipos y Literales
Identificadores, Tipos y Literales
editarLos 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
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#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.