J'ai une classe appelée Cal et il est Cpp et son homologue .hC/C initialisation du tableau privé dans le fichier d'en-tête
Headerfile a
class Cal {
private:
int wa[2][2];
public:
void do_cal();
};
fichier .cpp a
#include "Cal.h"
void Cal::do_cal() {
print(wa) // where print just itterates and prints the elements in wa
}
Ma question est comment puis-je initialiser le tableau wa
? Je n'arrive juste pas à le faire fonctionner.
J'ai essayé avec:
int wa[2][2] = {
{5,2},
{7,9}
};
dans le fichier d'en-tête, mais je reçois des erreurs disant que je ne peux pas le faire car il est contre iso..something.
J'ai également essayé d'initialiser le tableau wa
dans le constructeur mais cela ne fonctionnait pas non plus .. Qu'est-ce qui me manque?
Merci
memcpy est dangereux ici. Si quelqu'un dans le futur change les dimensions ou le type d'un tableau sans refléter ces changements dans l'autre ... –
C'est vrai, mais vous auriez le même problème avec n'importe quelle autre solution. Vous pouvez facilement lancer un assert (sizeof (wa) == sizeof (default_wa)) ici pour se protéger contre cela dans ce cas. –
Vous pouvez vous assurer que les tailles de tableau correspondent toujours si vous les définissez comme ceci: 'int default_wa [] [2] = {{5, 2}, {7, 9}}; int wa [count (default_wa)] [count (default_wa [0])]; 'avec' nombre_define (ARRAY) ((sizeof (ARRAY))/(sizeof (ARRAY [0]))) ' – Christoph