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

Contenido eliminado Contenido añadido
Paynalton (discusión | contribs.)
Paynalton (discusión | contribs.)
Línea 12:
====Tabla 1.1====
 
{{tabla|Tabla 1.1 Ejemplos de Literales|<td>'''Literal'''</td><td>'''Significado'''</td>|
<tr><td>5</td><td>una literal '''int'''</td></tr>
<tr><td>5u</td><td> '''u''' oro '''U''' specifies unsignedespecifica '''int''' sin signo</td></tr>
<tr><td>5L </td><td> '''l''' oro '''L''' specifiesespecifica '''long int''' despues afterde anun '''integer'''</td></tr>
<tr><td>05 </td><td>anuna octalliteral '''int''' literaloctal</td></tr>
<tr><td>0x5 </td><td>auna hexadecimalliteral '''int''' literalhexadecimal</td></tr>
<tr><td>true </td><td>a booluna literal boleana</td></tr>
<tr><td>5.0F </td><td>'''f''' oro '''F''' specifiesespecifica singleuna precisionliteral floatingde pointpunto literalflotante de presición simple</td></tr>
<tr><td>5.0 </td><td>auna doubleliteral precisionde floatingpunto pointflotante literalde doble presición</td></tr>
<tr><td>5.0L </td><td>'''l''' oro '''L''' specifiesespecifica '''long double''' si ifeste itviene comesdespues afterde aun floatingpunto pointflotante</td></tr>
<tr><td>'5' </td><td>a charuna literal '''char''' (''ASCII 53'')</td></tr>
<tr><td>“50” </td><td> auna constconstante '''char*''' containingconteniendo thelos charscarácteres ''5'' ''0'' andy ''\0''</td></tr>
<tr><td>“any” “body”“cualquier” “cosa”</td><td> “anybody”“cualquiercosa”</td></tr>
<tr><td>'\a' </td><td>alertalerta</td></tr>
<tr><td>'\\' </td><td>''backslash''</td></tr>
<tr><td>'\b' </td><td> backspace''retroceso''</td></tr>
<tr><td>'\r' </td><td>carriage''retorno de returncarro''</td></tr>
<tr><td>'\'' </td><td>single''comilla quotesimple''</td></tr>
<tr><td>'\“' </td><td>double''comilla quotedoble''</td></tr>
<tr><td>'\f'</td><td> ''formfeed'' (newpagenueva página)</td></tr>
<tr><td>'\t' </td><td> tab''tabulación''</td></tr>
<tr><td>'\n' </td><td>newlineliteral '''char''' literalde nueva línea</td></tr>
<tr><td>“\n”</td><td> newlinenueva followedlínea byseguida nullpor terminatorun terminador '''null'' (''const char*'')</td></tr>
<tr><td>'\0' </td><td> caracter '''null character'''</td></tr>
<tr><td>'\v' </td><td>tabulación vertical tab</td></tr>
<tr><td>“a“una stringcadena withcon newlinenueva línea\n”</td><td> anotherotro '''const char*'''</td></tr>|2}}
 
 
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:
String literals are special in C++, due to its historical roots in the C language. Example 1.15 shows how certain characters need to be escaped inside double-quoted string delimiters.
 
Example 1.15. src/early-examples/literals/qliterals.cpp
 
Example{{ejemplo2|Ejemplo 1.15. src/early-examples/literals/qliterals.cpp|
#include <QTextStream>
'''QString str &#61; charstr;''' cadenas al estilo C pueden ser convertidas a QString|
#include <QString>
#include <QTextStream>
#include <QString>
int main() {
const char* charstr =&#61; "thisEsta ises oneuna verycadena longmuy stringlarga "
" por eso continuaré en la siguiente línea";
QTextStream cout(stdout);
'''QString str =&#61; charstr; 1'''
cout << str << endl;
cout << "\nA\tb\\c\'d\"" << endl;
return 0;
}
|http://cartan.cas.suffolk.edu/oopdocbook/docs/src/early-examples/literals/qliterals.cpp}}
 
int main() {
const char* charstr = "this is one very long string "
" so I will continue it on the next line";
QTextStream cout(stdout);
QString str = charstr; 1
cout << str << endl;
cout << "\nA\tb\\c\'d\"" << endl;
return 0;
 
compilaremos u correremos de la forma en que describimos antes:
 
src/early-examples/literals> qmake -project
1
src/early-examples/literals> qmake
c-style strings can be converted to QString
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'''
 
(link)
 
La salida debería lucir algo parecido a esto:
We compile and run the way we described earlier:
 
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
 
Esta es una cadena muy larga por eso continuaré en la siguiente línea
The output should look something like this:
A b\c'd"
 
this is one very long string so I will continue it on the next line
 
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.
A b\c'd"
 
Notice that this program shows a way to avoid very long lines when dealing with string literals. They can be broken at any white space character and are concatenated automatically using this syntax.
----
{{nav2|Introducción a Patrones de Diseño en C++ con Qt4/1.12.1 Ejercicios: Flujos|Ejercicios: Flujos|Introducción a Patrones de Diseño en C++ con Qt4|Contenido|Introducción a Patrones de Diseño en C++ con Qt4/1.13.1 Ejercicios: Identificadores, Tipos y Literales |Ejercicios: Identificadores, Tipos y Literales|Introducción a Patrones de Diseño en C++ con Qt4/print}}