ctor-initializer
¿Qué es esta extraña sintaxis de miembro de dos puntos ( " :") en el constructor?
Recientemente he visto un ejemplo como el siguiente:
#include <iostream>
class Foo {
public:
int bar;
Foo(int nu ... . Y, por cierto, ¿hay otras características del lenguaje esotérico como esta, que nunca encontrarás en un libro de C++ común?
¿Un miembro de la clase de referencia de const prolonga la vida de un miembro temporal?
¿Por qué esto:
#include <string>
#include <iostream>
using namespace std;
class Sandbox
{
public:
Sandbox( ... box.member << endl;
return 0;
}
Dar salida de:
La respuesta es:
En lugar de:
La respuesta es: cuatro
¿Qué hace un dos puntos después de un nombre de constructor de C++? [duplicar]
Esta pregunta ya tiene una respuesta aquí:
¿Qué es esta extraña sintaxis de dos puntos (" : ") en el con ...
class MyClass {
public:
MyClass() : m_classID(-1), m_userdata(0) {
}
int m_classID;
void *m_userdata;
};
Inicialización de miembros mientras se usa el constructor delegado
He empezado a probar el estándar C++11 y encontré esta pregunta que describe cómo llamar a su ctor desde otro ctor en la mis ... lines; en su lugar y funciona bien. Pero realmente me gustaría poder usar la lista de inicializadores.
Gracias de antemano!
Inicializar una matriz miembro en el inicializador del constructor
class C
{
public:
C() : arr({1,2,3}) //doesn't compile
{}
/*
C() : arr{1,2,3} //doesn't compile either
{}
*/
pr ... el problema?
P.d. Por favor, no mencione vectores, boost::arrays, y su superioridad a los arrays, que soy muy consciente de.