Méthode appelée sur un objet incorrectement transtypé

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Erreurs CodeGuard - Index

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;
}