[C con Clase] Matriz de punteros de una clase abstracta 
    Jordenys Pérez Feria 
    jferia en uci.cu
       
    Vie Abr  9 16:13:20 CEST 2010
    
    
  
Hola Carlos, en el código que envías existen pequeños problemas, te los comento a continuación.
Asumiendo que lo que quieres construir una matriz de objetos de n x n elementos. 
Padre **tabla= new Padre*[7]; //Esto es correcto.
int m = 7; 
for(int i = 0; i < 7; i++) { 
tabla[i] = new Padre*[m]; //Esto no.
}
//El problema esta dado en que tabla es un puntero a puntero, lo que creaste al principio es algo así:
tabla = [Padre*][Padre*][Padre*][Padre*][Padre*][Padre*][Padre*]
cuando tratas de asignar memoria para cada posición de tabla[i] y haces esto:
new Padre*[m];
estas intentando volver a crear una lista de puntero a punteros, la forma correcta:
new Padre();
pero igual existe un problema, que como mencionaste anteriormente la clase Padre es abstracta y no se puede asignar memoria para un tipo de dato abstracto. Te propongo la siguiente solución:
#include <iostream>
using namespace std;
class Padre {
public:
	virtual void setName(const std::string &name) = 0;
private:
};
class Hijo : public Padre{
	virtual void setName(const std::string &name) {}
};
int main() {
	cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!
	int m = 7;
	Padre **tabla = new Padre*[m];
	for(int i = 0; i < m; i++){
		tabla[i] = new Hijo();//Se crea memoria dinámica para un hijo no abstracto.
	}
	return 0;
}
Espero haber aclarado algunos conceptos.
Saludos.
----- Mensaje original -----
De: "Carlos Arias" <carlos.candres69cr en gmail.com>
Para: cconclase en listas.conclase.net
Enviados: Viernes, 9 de Abril 2010 1:55:35 (GMT-0500) Auto-Detected
Asunto: [C con Clase] Matriz de punteros de una clase abstracta
Buenas mi consulta es: 
Estoy intentando realizar un arreglo dinamico de punteros de una clase padre que es abstracta lo cual lo logro con, 
Padre **tabla = new Padre*[7]; 
Pero mi deseo y problema en este momento es que necesito crear una matriz dinamica de esta misma clase padre, 
intente lo siguiente: 
Padre **tabla= new Padre*[7]; 
int m = 7; 
for(int i = 0; i < 7; i++) { 
tabla[i] = new Padre*[m]; 
} 
Con lo cual me genera Error c2440: '=' : no se puede realizar la conversión de 'Padre**' a 'Padre*' 
Les agradezco la ayuda que puedan brindar. 
-- 
Carlos Andrés Arias Blanco 
_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
    
    
Más información sobre la lista de distribución Cconclase