2010-06-06 9 views
6

que tienen este constructor de la clase:¿Cómo inicializar una matriz de clases?

Pairs (int Pos, char *Pre, char *Post, bool Attach = true); 

¿Cómo puedo inicializar variedad de clases pares? Probé:

Pairs Holder[3] = 
{ 
    {Input.find("as"), "Pre", "Post"}, 
    {Input.find("as"), "Pre", "Post"}, 
    {Input.find("as"), "Pre", "Post"} 
}; 

parecer que no está funcionando, también traté de usar() en lugar de corchetes {} pero compilador mantiene quejándose todo el tiempo. Lo siento si es cuestión cojo, busqué en Google bastante duras, pero no fue capaz de encontrar la respuesta:/

+1

¿Cuáles son los errores que recibe? –

+0

Normalmente obtendrá respuestas mejores y más rápidas cuando publique los mensajes de error del compilador. –

Respuesta

11

llamar al constructor de forma explícita:

Pairs Holder[3] = 
{ 
    Pairs(Input.find("as"), "Pre", "Post"), 
    Pairs(Input.find("as"), "Pre", "Post"), 
    Pairs(Input.find("as"), "Pre", "Post") 
}; 
+0

Funciona bien, muchas gracias :) – Kra

+0

No entiendo la sintaxis. Pensé que no se puede llamar al constructor explícitamente (se llama implícitamente cuando se crea una instancia de un objeto). Además, no devuelve nada. –

6

llamar al constructor:

Pairs Holder[3] = 
{ 
    Pairs(Input.find("as"), "Pre", "Post"), 
    Pairs(Input.find("as"), "Pre", "Post"), 
    Pairs(Input.find("as"), "Pre", "Post") 
}; 

Esto es similar a decir

Holder[0] = Pairs(Input.find("as"), "Pre", "Post"); 
Holder[1] = Pairs(Input.find("as"), "Pre", "Post"); 
Holder[2] = Pairs(Input.find("as"), "Pre", "Post"); 

Una completa se puede encontrar la clase encuadernada here.

+0

Gracias por el enlace, el tutorial parece ser interesante, lo intentaré. Empecé a creer que tengo algún error dentro de mi código cuando tu primer comentario (sin editar) también causó errores de compilación. Afortunadamente, este no fue el caso, gracias por la edición. – Kra

Cuestiones relacionadas