dýnamic_cast - debug error in runtime
-
Was geht schief bei mir? Wenn Code ist in ein f.cpp gebracht – es läuft. Wenn getränt ist(f.cpp, f.h):
- warning C4541: 'dynamic_cast' für polymorphen Typ 'KFZ' mit /GR- verwendet;
unvorhersehbares Verhalten möglich
- stop in runtime an die Stelle =>
pvBlk = _heap_alloc_dbg(nSize, nBlockUse, szFileName, nLine);Code selbst:
KFZ* autos[100]; PKW* pkwp=NULL; LKW* lkwp=NULL; // Tabelle initialisieren for(int i=0; i<100; i++) autos[i]=NULL; // Default Einträge autos[0] = new PKW("capri",0,1,"ford"); autos[1] = new PKW("1500sedan",0,3,"mazda"); autos[2] = new LKW(5,21,5,"scania"); autos[3] = new LKW(3,32,4,"man"); autos[4] = new PKW("240D",1,2,"mercedes"); autos[5] = new LKW(2,7.5,6,"iveco"); // in main - PKW auszählen int n=0; for(int i=0; autos[i]; i++) { if(lkwp=dynamic_cast<PKW*>(autos[i])) n++; } cout<<"PKW: "<< n <<endl;Wo liegt das Problem und wie kann es umgehen? Danke!
-
Der Compilerschalter /GR ist nicht gesetzt, um die Laufzeitüberprüfung zu aktivieren. Das kannst du in den Projektoptionen aktivieren.
-
Es funktioniert. Danke dir.
