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.