J'ai un problème avec ma fonction d'appelréférence non définie à une erreur de méthode statique
static classname *makeclass (char ch, int x1, int y1, int x2, int y2){
cin >> ch >> x1 >> y1 >> x2 >> y2;
Ship **ptr = 0;
if (ch != 'A' || ch != 'B' || ch != 'C' || ch != 'D'){
throw invalid_argument ("Error : invalid character input ");
}
else if (ch == 'A'){
classname **ptr = new derivedclassname*[5];
for (int i = 0 ; i < 5; i++){
ptr[i] = new derivedclass (x1,y1,x2,y2);
}
return *ptr;
}
return *ptr;
}
Dans mon fichier principal:
main() {
classname *p = classname::*makeclass (x1,y1,x2,y2);
}
Mon erreur:
Ship.cpp:81:14: warning: ‘classname* makeclass(char, int, int, int, int)’ defined but not used [-Wunused-function]
static classname *makeclass (char ch, int x1, int y1, int x2, int y2){
^
/tmp/cc1eUoXA.o: In function `main':
testclass.cpp:(.text+0xc1): undefined reference to `classname::makeclass(char, int, int, int, int)'
Malgré les divers problèmes avec la syntaxe, pourquoi la fonction 'makeclass' paramètres de passage vous car ils sont passés en valeur et remplis par l'appel 'cin' en dedans? – SirDarius
'static' semble faux, sauf si vous avez cette en ligne dans une déclaration de classe! Sinon, l'éditeur de liens voit cela uniquement privé pour l'unité de compilation dans laquelle il a été défini. –