Estoy aprendiendo C++ por el momento, C++ Primer plus. Pero solo quería visitar el sitio web de cplusplus y omitir un poco el manejo de archivos.'Inicialización del soporte'. (C++)
Conozco bastante las bases del manejo de archivos provenientes de java, php, visual basic. Pero encontré una línea bastante extraña.
ostream os(&fb);
fb representa un archivo de imagen. Yo no lo entiendo la sintaxis de este, pero puedo imaginar que es lo mismo que:
ostream os = &fb;
Pero nunca leí sobre esta manera de inicializar las variables.
Así que me pregunto. ¿No tengo sentido y me pierdo una característica realmente útil todo el tiempo? ¿Es esta forma de inicialización simplemente vieja? ¿Es algo diferente?
Gracias de antemano.
Gracias por esta gran referencia y respuesta rápida :) –
Debe proporcionar la respuesta aquí, en esta publicación. El enlace puede estar desactivado cuando alguien más necesita que se responda esta pregunta, y oye, si quieres el representante, debes publicar la respuesta real. Es común SO cortesía. – jalf
Parafraseado ligeramente del segundo enlace: 'ostream os = &fb;' es la inicialización de la copia, y 'os' siempre se inicializa con el copiador de' ostream'. (El "=" es solo un remanente de sintaxis de C; operator = nunca se llama.) El compilador en realidad está permitido (pero no es obligatorio) para optimizar la construcción de copias en este tipo de situaciones. Si lo optimiza, la copiadora debe estar accesible. ** Pauta: ** Prefiere usar el formulario 'ostream os (& fb)'. Siempre funciona dondequiera que funcione 'ostream os = & fb', y tiene otras ventajas (por ejemplo, puede tomar múltiples parámetros). –