Me preguntaba, si un miembro de la matriz de una clase podría crearse inmediatamente después de la construcción de clase:C++ matriz Constructor
class C
{
public:
C(int a) : i(a) {}
private:
int i;
};
class D
{
public:
D() : a(5, 8) {}
D(int m, int n) : a(m,n) {}
private:
C a[2];
};
Por lo que Googled, creación de la matriz dentro de Constructor tales como anterior es en C++ imposible. Alternativamente, el miembro de la matriz se puede inicializar dentro del bloque Constructor de la siguiente manera.
class D
{
public:
D() {
a[0] = 5;
a[1] = 8;
}
D(int m, int n) {
a[0] = m;
a[1] = n;
}
private:
C a[2];
};
Pero entonces, Ya no es una creación de matriz, sino una asignación de matriz. Los elementos de la matriz se crean automáticamente mediante el compilador a través de su constructor predeterminado y, posteriormente, se asignan manualmente a valores específicos dentro del bloque C'tor. Lo que es molesto para tal solución, la clase C tiene que ofrecer un Constructor predeterminado.
Alguien tiene alguna idea que me puede ayudar a crear miembros de la matriz en la construcción. Sé que usar std :: vector podría ser una solución pero, debido a las condiciones del proyecto, no tengo permitido usar ninguna biblioteca estándar, Boost o de terceros.
Tienes que esperar por C++ 0x, lo que permite esta. –