Méthode appelée sur un objet incorrectement transtypé
Remonter à Erreurs d'accès
Un appel à une méthode hors d'une mémoire valide générera l'erreur Méthode appelée sur un objet incorrectement transtypé
. L'exemple suivant crée un tableau de deux objets someclass
, mais essaie d'appeler la méthode du troisième objet. Puisque les tableaux sont indexés à partir de zéro, il accède à une mémoire non initialisée.
#include <tchar.h> #pragma hdrstop #include<stdio.h> #include<dir.h> class someclass{ int fnumber; public: int getnumber(){return fnumber;} void setnumber(int nw){fnumber = nw;} int doublev(int val){return val*2;} int publicalval; };
void myf() { someclass *myc = new someclass[2]; int answ; answ = myc[2].doublev(5); // error delete[] myc; } int _tmain(int argc, _TCHAR* argv[]) { myf(); return 0; }