Tutoriales En Linea Tutoriales En Linea
  • Tutoriales
    • Aprendizaje
    • Video Tutorial
    • Manuales
    • Hagalo usted mismo
    • Explorar todo
  • Adobe
    • After Effects
    • Dreamweaver
    • Premiere Pro CC
    • Photoshop
    • Photoshop Mix
    • Lightroom
    • Illustrator
    • Adobe Muse
    • Creative Cloud
  • Android
    • Developer Android
    • Aplicaciones
    • Android Studio
    • Android Wear
    • Desarrolladores
    • SDK Platform-Tools
    • ADB...depuración Bridge
    • Fastboot
    • Root
    • Recovery
  • Apple
    • iPhone y iPad
    • iPhone
    • iPad
    • Mac OS
    • iCloud
    • iTunes
  • Cursos
    • Actívate
    • Autoempleo
    • Idiomas
    • Curso De HTML
    • Curso de C++
    • Javascript
    • jQuery
    • Matematicas
    • Programacion
    • Python
    • Udacity
    • Diseño Web adaptativo
  • Ciberseguridad
    • Malware
    • Ransomware
    • Virus
    • Troyano
    • Dorkbot
    • Filecoders
    • keylogger
    • Spyware
    • Jackware
    • DDoS
    • HackerOne
    • Interpol
  • Criptomonedas
    • Blockchain
    • Mineria de Criptomonedas
    • Bitcoin (BTC)
    • Bitcoin Cash (BCH)
    • DASH (Dash)
    • Dogecoin (Doge)
    • Ethereum (ETH)
    • Litecoin (LTC)
    • Monero (XMR)
    • Ripple (XRP)
    • Zcash (ZEC)
    • Forex
    • Trading
  • Desarrollo Web
    • Sistema de gestion de contenidos
    • AMP
    • Datalife Engine
    • Blogger
    • WordPress
    • Joomla
    • Bootstrap
    • Plantillas
    • @font-face
    • Schema
    • Website
    • Desarrolladores
    • Lenguaje Web
  • Diseño Web
    • Web Responsive
    • Lenguaje Web
    • Datos estructurados
    • HTML
    • CSS3
    • JavaScript
    • Ajax
    • jQuery
    • PHP
  • Entretenimiento
  • Encuestas
    • GlobalTestMarket
    • Centro de opinion
    • Ipsos i-Say
    • Triaba
    • Panel opinea
    • Toluna
    • YouGov
    • ClixSense
    • ySense
    • Panel Cint
    • Beruby
  • Electricidad
  • Electronica
  • Ganar dinero comprando
    • CashbackDeals
    • Cashback
    • Por ir de compras
    • Aklamio
    • Intercambio de tráfico
    • Justificante de pagos
    • Webs estafas
  • Google
    • Google Pay
    • Adsense
    • Gmail
    • Google Apps
    • Google Chrome
    • Google Cloud Platform
    • Google Consumer Surveys
    • Google Desarrolladores
    • Google Fit
    • Google Maps
    • Google Photos
    • Google Play
    • Google Translation
    • DoubleClick
    • YouTube
    • Chromebooks
  • Marketing
    • SEM
    • SEO
    • Posicionamiento
    • Contenido
    • Publisuites
    • Space Content
    • Coobis
    • Marketing
  • Computadora u ordenador
    • Sistemas operativos
      • Windows
      • Mac OS
      • Android
      • Linux
      • Ubuntu
      • Kali Linux
      • Wifislax
    • hardware
    • Software
    • BIOS
    • Unidad de disco duro
    • Programacion
    • Dispositivos
    • Internet
  • Ofimática
    • Microsoft
    • Suite Ofimatica
    • Access
    • Word
    • Excel
    • Powerpoint
    • Outlook
    • Microsoft Publisher
  • PTC
    • No pierdas tiempo con estas web
  • Redes Sociales
    • Delicious
    • Facebook
    • Instagram
    • linkedin
    • Snapchat
    • TikTok
    • Twitter
    • Pinterest
    • Spotify
    • Vkontakte - VK
    • WhatsApp
  • Smartphone
    • Telefonos
    • Telefonia movil y telecomunicaciones
    • Desbloquear
    • Códigos NCK
    • Liberar
    • Tarjeta SIM
    • Tablet
  • Sitio Web
    • Dominios
    • Hosting
    • Servidores
    • Demo DLE
    • Documentación sobre Datalife Engine
    • Modulos DLE
    • Hack
    • Optimizacion
    • Google Adsense
    • Plantillas
  • Tips
    • Cabello
    • Consejos
    • Cremas
    • Cosmético
    • Cuerpo
    • Dieta
    • Exfoliantes
    • Entrenamiento
    • Ejercicio
    • Estilo
    • Fitness
    • Habitos
    • Hidratante
    • Look
    • Maquillaje
    • Moda
    • Piel Radiante
    • Recetas
    • Ropa
    • Rutina
    • Salud
    • Tratamientos
  • Trabajos
    • Atencion al cliente
    • Asistente virtual
    • Transcripcíon
    • Transcripcíones medica
    • Entrada de datos
    • De edicion y correccion
    • Mystery Shopping
    • Micro trabajos
    • Contabilidad
    • Tutoria y aprendizaje
    • Mas ingresos extras
  • Webmasters
    • Git
    • GitHub
    • Criptografia
    • Deep Web
    • Hacker
    • FTP
    • Indexar
    • Newsletter
    • Redes y VPN
    • Herramientas online
  • Windows
    • Skype
    • Windows
    • Windows 11
    • Windows 10
    • Windows 8
    • Windows 7
    • Puerta trasera de Windows
    • Microsoft Edge
Facebook Twitter YouTube Instagram Linkedin
  • Sobre nosotros
  • Últimos artículos
  • Herramientas SEO
  • Ver mas temas
  • Más sitios que te gustarán
Tutoriales En Linea Tutoriales En Linea
  • Secciones
    1. Android
    2. Adobe
    3. Bricolaje
    4. Bachillerato
    5. Cursos
    6. Criptomonedas
    7. Criptografia
    1. Diseño Web
    2. Encuestas
    3. Empleo
    4. Electricidad
    5. Electronica
    6. Forex
    7. Fisica
    1. Google
    2. Hardware
    3. Herramientas Ofimaticas
    4. Herramientas
    5. Internet
    6. Idiomas
    7. IPTV
    1. Lenguajes De Programacion
    2. Libros
    3. Microsoft
    4. Manuales
    5. Matematica
    6. Newsletter
    7. Optimizacion
    1. Redes Sociales
    2. Software
    3. Seguridad
    4. Telefonia
    5. WebSite
    6. Webmasters
    7. Ver todas las categorias
    8. Post promocionado
  • Smartphone
    Los smartwatch: ¿La nueva tendencia en tecnología?

    Los smartwatch: ¿La nueva tendencia en tecnología?

    Cómo AirDroid te ayuda a administrar tu teléfono de forma eficiente

    Cómo AirDroid te ayuda a administrar tu teléfono de forma eficiente

    Ya puedes usar WhatsApp en múltiples dispositivos inteligentes al mismo tiempo

    Ya puedes usar WhatsApp en múltiples dispositivos inteligentes al mismo tiempo

    Llega su fin a las aplicaciones preinstaladas para una experiencia de usuario mejorada

    Llega su fin a las aplicaciones preinstaladas para una experiencia de usuario mejorada

    Compartir archivos entre Windows y Android nunca fue tan fácil con Near Share

    Compartir archivos entre Windows y Android nunca fue tan fácil con Near Share

  • Tecnología
    1. Móviles
    2. Ordenadores
    3. Software
    4. Hardware
    5. Seguridad
    6. Ver todo
    Los smartwatch: ¿La nueva tendencia en tecnología?

    Los smartwatch: ¿La nueva tendencia en tecnología?

    Cómo AirDroid te ayuda a administrar tu teléfono de forma eficiente

    Cómo AirDroid te ayuda a administrar tu teléfono de forma eficiente

    Ya puedes usar WhatsApp en múltiples dispositivos inteligentes al mismo tiempo

    Ya puedes usar WhatsApp en múltiples dispositivos inteligentes al mismo tiempo

    Llega su fin a las aplicaciones preinstaladas para una experiencia de usuario mejorada

    Llega su fin a las aplicaciones preinstaladas para una experiencia de usuario mejorada

    How to clean up and optimize your MacBook

    How to clean up and optimize your MacBook

    Cómo crear un USB de arranque para instalar Windows 10 y 11

    Cómo crear un USB de arranque para instalar Windows 10 y 11

    Cómo deshabilitar la desfragmentación de SSD y HDD en Windows 10 y 11

    Cómo deshabilitar la desfragmentación de SSD y HDD en Windows 10 y 11

    Historia de los sistemas operativos

    Historia de los sistemas operativos

    Cómo migrar de Wix a Shopify [Actualización 2023]

    Cómo migrar de Wix a Shopify [Actualización 2023]

    Libérate de las tareas rutinarias: aprovecha el Software de gestión AgendaPro

    Libérate de las tareas rutinarias: aprovecha el Software de gestión AgendaPro

    How to clean up and optimize your MacBook

    How to clean up and optimize your MacBook

    GameBoyAdvance Online, los juegos de la mítica consola ahora en pantalla completa

    GameBoyAdvance Online, los juegos de la mítica consola ahora en pantalla completa

    Cómo deshabilitar la desfragmentación de SSD y HDD en Windows 10 y 11

    Cómo deshabilitar la desfragmentación de SSD y HDD en Windows 10 y 11

    Benefits Of Vertical Dual Monitors For Coding And Programming

    Benefits Of Vertical Dual Monitors For Coding And Programming

    AMD ha identificado la causa de la quema de los procesadores Ryzen 7000 y ha lanzado un nuevo AGESA para corregir el problema

    AMD ha identificado la causa de la quema de los procesadores Ryzen 7000 y ha lanzado un nuevo AGESA para corregir el problema

    Aumenta el rendimiento de tu PC con el overclocking

    Aumenta el rendimiento de tu PC con el overclocking

    Virus en el sistema DataLife Engine (DLE) y cómo tratarlos

    Virus en el sistema DataLife Engine (DLE) y cómo tratarlos

    La ciberseguridad: Vital Para Las Apuestas Online en España

    La ciberseguridad: Vital Para Las Apuestas Online en España

    Microsoft busca aprovechar el increíble talento de las mujeres para ayudar a llenar la brecha de seguridad cibernética

    Microsoft busca aprovechar el increíble talento de las mujeres para ayudar a llenar la brecha de seguridad cibernética

    Cómo rastrear fácilmente la ubicación de sus seres queridos en Android

    Cómo rastrear fácilmente la ubicación de sus seres queridos en Android

    Aprovecha la tecnología para una experiencia de adoración más profunda

    Aprovecha la tecnología para una experiencia de adoración más profunda

    Cómo Microsoft cambiará el juego con la Xbox Series X sin disco

    Cómo Microsoft cambiará el juego con la Xbox Series X sin disco

    Los smartwatch: ¿La nueva tendencia en tecnología?

    Los smartwatch: ¿La nueva tendencia en tecnología?

    Las tecnologías de Linux, Windows y Android se unen en OpenKylin 1.0

    Las tecnologías de Linux, Windows y Android se unen en OpenKylin 1.0

  • Estilo de vida
    1. Entrenamiento
    2. Maquillaje
    3. Dieta
    4. Moda
    5. Trucos y tips
    6. Ver todo
    Desarrolla un cuerpo fuerte y saludable

    Desarrolla un cuerpo fuerte y saludable

    ¿Qué es la forma física?

    ¿Qué es la forma física?

    Mejora los resultados de tu entrenamiento de estabilidad y fuerza

    Mejora los resultados de tu entrenamiento de estabilidad y fuerza

    Consejos para maximizar las caminatas diarias

    Consejos para maximizar las caminatas diarias

    Consejos para aplicar pestañas postizas

    Consejos para aplicar pestañas postizas

    ¿Por qué es importante preparar la piel antes de maquillarla?

    ¿Por qué es importante preparar la piel antes de maquillarla?

    La nutrición y un cabello saludable

    La nutrición y un cabello saludable

    Consejos para una piel perfecta este invierno

    Consejos para una piel perfecta este invierno

    Cosas que le pasan a tu cuerpo cuando comes salmón todos los días

    Cosas que le pasan a tu cuerpo cuando comes salmón todos los días

    Batidos de proteínas pueden ayudar a mejorar sus hábitos alimenticios

    Batidos de proteínas pueden ayudar a mejorar sus hábitos alimenticios

    Batidos de proteinas - Una guía para principiantes

    Batidos de proteinas - Una guía para principiantes

    Recetas de batidos Herbalife

    Recetas de batidos Herbalife

    Inspiración de traje de otoño

    Inspiración de traje de otoño

    La dura verdad sobre las modelos de talla grande

    La dura verdad sobre las modelos de talla grande

    Razones por las que las marcas de moda de lujo son tan caras

    Razones por las que las marcas de moda de lujo son tan caras

    Cuales son las mejores frutas para adelgazar

    Cuales son las mejores frutas para adelgazar

    Como enseñar a leer y a escribir

    Como enseñar a leer y a escribir

    Como generar cuentas premium Disneyplus

    Como generar cuentas premium Disneyplus

    Calcular porcentajes con la Calculadora de Windows 10

    Calcular porcentajes con la Calculadora de Windows 10

    Cómo conectar un televisor a un ordenador a través de Wi-Fi

    Cómo conectar un televisor a un ordenador a través de Wi-Fi

    ¿Por qué es importante preparar la piel antes de maquillarla?

    ¿Por qué es importante preparar la piel antes de maquillarla?

    Consejos de belleza para lucir fresca en el verano

    Consejos de belleza para lucir fresca en el verano

    Bricolaje para la decoración del hogar

    Bricolaje para la decoración del hogar

    Top 10 de posturas de yoga

    Top 10 de posturas de yoga

  • Marketing
    ¿Sirven de algo los diseñadores Web?… ¿y los redactores de contenido?

    ¿Sirven de algo los diseñadores Web?… ¿y los redactores de contenido?

    ¿Qué es un Link Dofollow?

    ¿Qué es un Link Dofollow?

    ¿Qué es Nofollow?

    ¿Qué es Nofollow?

    ¿Qué es el remarketing?

    ¿Qué es el remarketing?

    ¿Qué es el posicionamiento web (SEO) y lo necesito para mi sitio web?

    ¿Qué es el posicionamiento web (SEO) y lo necesito para mi sitio web?

  • Juegos
    Para qué se pueden usar las Gafas VR PS4

    Para qué se pueden usar las Gafas VR PS4

    Colaboración entre Sony INZONE y EXCEL Esports

    Colaboración entre Sony INZONE y EXCEL Esports

    Sony prohíbe cuatro juegos de terceros en Xbox

    Sony prohíbe cuatro juegos de terceros en Xbox

    La nueva generación de realidad virtual de PlayStation®VR2 y PlayStation®5

    La nueva generación de realidad virtual de PlayStation®VR2 y PlayStation®5

    Prepárate para el futuro: Project Trinity llega a finales de 2024

    Prepárate para el futuro: Project Trinity llega a finales de 2024

  • Herramientas

¡Bienvenido de nuevo!

Inicie sesión o Regístrate ahora

VK

o con Email

¿Has olvidado tu contraseña?
Búsqueda extendida

Escriba arriba y presione Enter para buscar.


Tutoriales En Linea » Noticias » Curso De C++ - Capitulo 25

Curso De C++ - Capitulo 25


omegayalfa Por omegayalfa En: Noticias, Tutorial, Tutorial C++ 0 Mayo 25, 2015

2.3К
VISTO
Twitter Facebook Pinterest VKontakte LinkedIn Tumblr WhatsApp Email
Compartir
Facebook Twitter Pinterest LinkedIn Tumblr WhatsApp VKontakte

 

Almacenamiento en registro

Para especificar este tipo de almacenamiento se usa el especificador register.
Sintaxis:

register <tipo> <nombre_variable>; 
Indica al compilador una preferencia para que el objeto se almacene en un registro de la CPU, si es posible, con el fin de optimizar su acceso, consiguiendo una mayor velocidad de ejecución.

Los datos declarados con el especificador register tienen el mismo ámbito que las automáticas. De hecho, sólo se puede usar este especificador con parámetros y con objetos locales.

El compilador puede ignorar la petición de almacenamiento en registro, que se acepte o no estará basado en el análisis que realice el compilador sobre cómo se usa la variable.

Un objeto de este tipo no reside en memoria, y por lo tanto no tiene una dirección de memoria, es decir, no es posible obtener una referencia a un objeto declarado con el tipo de almacenamiento en registro.

Se puede usar un registro para almacenar objetos de tipo char, int, float, punteros. En general, objetos que quepan en un registro.

#include <iostream>

using namespace std;

void funcion(register int *x);

int main() {
    int s[10] = {1, 2, 1, 5, 2, 7, 3, 1, 3, 0};
    funcion(s);
    return 0;
}

void funcion(register int *x) {
    register char a = 'a';

    for(register int i=0; i < 10; i++) {
        cout << *x++ << " " << a++ << endl;
    }
} 

Modificador de almacenamiento constante

El modificador const crea nuevos tipos de objetos, e indica que el valor de tales objetos no puede ser modificado por el programa. Los tipos son nuevos en el sentido de que const int es un tipo diferente de int. Veremos que en algunos casos no son intercambiables.
Sintaxis:

const <tipo> <variable> = <inicialización>;
const <tipo> <variable_agregada> = {<lista_inicialización>};
<tipo> <nombre_de_función> (const <tipo>*<nombre-de-variable> );
const <tipo> <nombre_de_función>(<lista_parámetros>);
<tipo> <nombre_de_función_miembro>(<lista_parámetros>) const; 
Lo primero que llama la atención es que este modificador se puede aparecer en muchas partes diferentes de un programa C++. En cada una de las sintaxis expuestas el significado tiene matices diferentes, que explicaremos a continuación.

De las dos primeras se deduce que es necesario inicializar siempre, los objetos declarados como constantes. Puesto que el valor de tales objetos no puede ser modificado por el programa posteriormente, será imprescindible asignar un valor en la declaración. C++ no permite dejar una constante indefinida.


Cuando se trata de un objeto de un tipo agregado: array, estructura o unión, se usa la segunda forma.

En C++ es preferible usar este tipo de constantes en lugar de constantes simbólicas (macros definidas con #define). El motivo es que estas constantes tienen un tipo declarado, y el compilador puede encontrar errores por el uso inapropiado de constantes que no podría detectar si se usan constantes simbólicas.

Hay una excepción, que en realidad no es tal, y es que la declaración tenga además el especificador extern. En ese caso, como vimos antes, no estamos haciendo una definición, no se crea espacio para el objeto, y por lo tanto, no necesitamos asignar un valor. Una declaración extern indica al compilador que la definición del objeto está en otra parte del programa, así como su inicialización.
Cuando se usa con parámetros de funciones, como en el caso tercero, impide que el valor de los parámetros sea modificado por la función.

Sabemos que los parámetros son pasados por valor, y por lo tanto, aunque la función modifique sus valores, estos cambios no afectan al resto del programa fuera de la función, salvo que se trate de punteros, arrays o referencias. Es precisamente en estos tres casos cuando el modificador tiene aplicación, impidiendo que el código de la función pueda modificar el valor de los objetos referenciados por los parámetros.

Los intentos de hacer estas modificaciones se detectan en la fase de compilación, de modo que en realidad, a quien se impide que haga estas modificaciones es al programador. En ese sentido, la declaración de un parámetro constante nos compromete como programadores a no intentar modificar el valor de los objetos referenciados.

#include <iostream>

using namespace std;

void funcion(const int *x);

int main() {
    int s = 100;
    funcion(&s);
    return 0;
}

void funcion(const int *x) {
    (*x)++; // ERROR: intento de modificar un valor constante
} 
El compilador dará un error al intentar compilar este ejemplo.

Nota: El compilador puede referirse a estos objetos como de "sólo lectura", o "read-only". Viene a significar lo mismo: ya que podemos leer el valor de una constante, pero no escribirlo (o modificarlo). 
Con las referencias pasa algo similar:

void funcion(const int &x); 

En este caso no podremos modificar el valor del objeto referenciado por x.
Esto tiene varias utilidades prácticas:

Imaginemos que sólo disponemos del prototipo de la función. Por ejemplo, la función strlen tiene el siguiente prototipo: int strlen(const char*). Esto nos dice que podemos estar seguros de que la función no alterará el valor de la cadena que pasamos como parámetro, y por lo tanto no tendremos que tomar ninguna medida extraordinaria para preservar ese valor. Hay que tener en cuenta que no podemos pasar arrays por valor.

Otro caso es cuando queremos pasar como parámetros objetos que no queremos que sean modificados por la función. En ese caso tenemos la opción de pasarlos por valor, y de este modo protegerlos. Pero si se trata de objetos de gran tamaño, resulta muy costoso (en términos de memoria y tiempo de proceso) hacer copias de tales objetos, y es preferible usar una referencia. Si queremos dejar patente que la función no modificará el valor del objeto declararemos el parámetro como una referencia constante.

Cuando se aplica al valor de retorno de una variable, como en el cuarto caso, el significado es análogo. Evidentemente, cuando el valor de retorno no es una referencia, no tiene sentido declararlo como constante, ya que lo será siempre. Pero cuando se trate de referencias, este modificador impide que la variable referenciada sea modificada.

#include <iostream>
using namespace std;
 
int y;

const int &funcion();
 
int main() {
    // funcion()++; // Ilegal (1)
    cout << ", " << y << endl;
     return 0; 
}
 
const int &funcion() { 
   return y;
} 
Como vemos en (1) no nos es posible modificar el valor de la referencia devuelta por "funcion".
El último caso, cuando el modificador se añade al final de un prototipo de función de una clase o estructura, indica que tal función no modifica el valor de ningun dato miembro del objeto. Cuando veamos con detalle clases, veremos que tiene gran utilidad.

Punteros constantes y punteros a constantes

Este matiz es importante, no es lo mismo un puntero constante que un puntero a una constante.
Declaración de un puntero constante:

<tipo> *const <identificador>=<valor inicial>
Declaración de un puntero a una constante:
const <tipo> *<identificador>[=<valor inicial>] 
En el primero caso estaremos declarando un objeto constante de tipo puntero. Por lo tanto, deberemos proporcionar un valor inicial, y este puntero no podrá apuntar a otros objetos durante toda la vida del programa.

En el segundo caso estaremos declarando un puntero a un objeto constante. El puntero podrá apuntar a otros objetos, pero ningún objeto apuntado mediate este puntero podrá ser modificado.
A un puntero a constante se le pueden asignar tanto direcciones de objetos constantes como de objetos no constantes:

...
    int x = 100;       // Objeto entero
    const int y = 200; // Objeto entero constante

    const int *cp;     // Puntero a entero constante
    cp = &x;           // Asignamos a cp la dirección de un objeto no constante
    cp = &y;           // Asigmanos a cp la dirección de un objeto constante
... 
Lo que está claro es que cualquier objeto referenciado por cp nunca podrá ser modificado mediante ese puntero:

...
    int x = 100;       // Objeto entero
    const int y = 200; // Objeto entero constante

    const int *cp;     // Puntero a entero constante
    cp = &x;           // Asignamos a cp la dirección de un objeto no constante
    (*cp)++;           // Ilegal, cp apunta a un objeto constante
    x++;               // Legal, x no es constante, ahora *cp contendrá el valor 101
... 

Modificador de almacenamiento volatile

Sintaxis:

volatile <tipo> <nombre_variable>;
<identificador_función> ( volatile <tipo> <nombre_variable> );
<identificador_función> volatile; 
Este modificador se usa con objetos que pueden ser modificados desde el exterior del programa, mediante procesos externos. Esta situación es común en programas multihilo o cuando el valor de ciertos objetos puede ser modificado mediante interrupciones o por hardware.

El compilador usa este modificador para omitir optimizaciones de la variable, por ejemplo, si se declara una variable sin usar el modificador volatile, el compilador o el sistema operativo puede almacenar el valor leído la primera vez que se accede a ella, bien en un registro o en la memoria caché. O incluso, si el compilador sabe que no ha modificado su valor, no actualizarla en la memoria normal. Si su valor se modifica externamente, sin que el programa sea notificado, se pueden producir errores, ya que estaremos trabajando con un valor no válido.

Usando el modificador volatile obligamos al compilador a consultar el valor de la variable en memoria cada vez que se deba acceder a ella.

Por esta misma razón es frecuente encontrar juntos los modificadores volatile y const: si la variable se modifica por un proceso externo, no tiene mucho sentido que el programa la modifique.
Las formas segunda y tercera de la sintaxis expuesta sólo se aplica a clases, y las veremos más adelante.

Modificador de almacenamiento mutable

Sintaxis:

class <identificador_clase> {
   ...
   mutable <tipo> <nombre_variable>;
   ...
};

struct <identificador_estructura> {
   ...
   mutable <tipo> <nombre_variable>;
   ...
}; 
Sirve para que determinados miembros de un objeto de una estructura o clase declarado como constante, puedan ser modificados.
#include <iostream>

using namespace std;
 
struct stA {
  int y;
  int x;
};

struct stB {
   int a;
   mutable int b;
};

int main() {
   const stA A = {1, 2}; // Obligatorio inicializar
   const stB B = {3, 4}; // Obligatorio inicializar
   
//   A.x = 0; // Ilegal (1)
//   A.y = 0;
//   B.a = 0;
   B.b = 0;  // Legal (2)
   return 0; 
}
Como se ve en (2), es posible modificar el miembro "b" del objeto "B", a pesar de haber sido declarado como constante. Ninguno de los otros campos, ni en "A", ni en "B", puede ser modificado.

Palabras reservadas usadas en este capítulo

auto, const, extern, mutable, register, static y volatile.
Capitulo 26  | Ir al Principio
Síguenos en Síguenos en Google News
  • 100
  • 1
  • 2
  • 3
  • 4
  • 5
Articulo anterior Curso De C++ - Capitulo 25
Articulo siguiente Curso De C++ - Capitulo 26
omegayalfa
omegayalfa
  • Website
  • Facebook
  • Twitter
  • LinkedIn
  • Pinterest
  • Instagram

Sobre mi: ¡Aprende los trucos de tutoriales online y cursos gratis con Tutoriales En Linea! Con manuales paso a paso para desarrollar tu conocimiento, Tutoriales En Linea te ayudará a mejorar tus habilidades y lograr tus metas.
Un tutorial está diseñado con pasos secuenciales que aumentan gradualmente el entendimiento. Por lo tanto, es importante que se sigan los pasos en su orden lógico para que el usuario comprenda todos los elementos. Para optimizar los resultados, se recomienda seguir de forma profesional las instrucciones del tutorial.

Artículos Relacionados


Curso De C++ - Capitulo 24

Curso De C++ - Capitulo 24

Curso De C++ - Capitulo 25

Curso De C++ - Capitulo 25

Curso De C++ - Capitulo 26

Curso De C++ - Capitulo 26


Comentarios



Información
Usuarios que no esten registrados no pueden dejar comentarios, te invitamos a que te registre!

Destacados

Como podemos conseguir proxies

Como podemos conseguir proxies

Jun 21 7 420
Herramienta de analisis de tus problemas de SEO

Herramienta de analisis de tus problemas de SEO

Mayo 18 98 928
Historia de los sistemas operativos

Historia de los sistemas operativos

Mayo 16 22 906
Cómo crear un USB de arranque para instalar Windows 10 y 11

Cómo crear un USB de arranque para instalar Windows 10 y 11

Jul 07 116 340

Lo mas leidos

Herramientas SEO para posicionamiento de nuestra web 2023

Herramientas SEO para posicionamiento de nuestra web 2023

Por administrador 27-09-22
Las 7 mejores páginas para descargar películas en .torrent en español

Las 7 mejores páginas para descargar películas en .torrent en español

Por administrador 05-11-21
Anunciate Aqui

Anunciate Aqui

Por Tutoriales En Linea 21-06-23

Etiquetas

CursoConstanteObjetoFuncionPunteroProgramaTutoriales En LineaArticulosPostNoticiasCurso De CCursos online gratuitosLenguajes De Programacioncursos online y gratuitos





Sobre nosotros

Tutoriales En Linea

¡Bienvenidos a Tutoriales En Línea, el sitio web perfecto para encontrar todas las herramientas necesarias para mejorar tus habilidades de forma gratuita! En Tutoriales En Linea se encuentran tutoriales, cursos online y aprendizaje de calidad, muy útiles para desarrollar tus capacidades... Leer mas...

Tiene una pregunta? Contactar...

Enlaces

  • Sobre nosotros
  • Ultimos tutoriales
  • Publicar tutorial
  • Ver mas temas
  • Ultimos comentarios
  • ¿Preguntas Frecuentes?
  • Derechos de autor
  • Politica de cookies
  • DMCA
  • Nuestro equipo
  • Normas

Herramientas online

  • Buscador de recetas
  • Prueba de diseño web
  • Codificar en binarios, hexadecimales...
  • Cual es mi IP
  • Test de velocidad
  • Editor HTML
  • Test de escritura
  • Test de nutricion
  • Descargar Videos
  • Generador de datos estructurados

Recursos

  • Analisis de tus problemas de SEO
  • Herramientas SEO
  • Generar palabras claves
  • Referencia de CSS3
  • Convertir HTML a XML
  • Acortador de URL
  • Selector de colores
  • Contador de palabras
  • Comprimir imagenes
  • Conversor a URI de datos
  • Suscribirse
Disponible en Google Play - Google Play y el logotipo de Google Play son marcas comerciales de Google LLC.
Facebook Twitter Instagram Pinterest Linkedin Youtube
  • Anunciarse
  • Socios externos
  • Política de privacidad
  • Términos y Condiciones
  • Sobre nosotros
  • Contactar
© Tutoriales En Linea. Reservados todos los derechos, queda prohibida la reproducción parcial o total sin previa autorización.