Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

17.09.2003, 18:50

Cast not accessible

ich hab folgendes gemacht:

class A;
class B public A;
class C public B;

A* = new C;

Gibt ne dicke Fehlermeldung, weiss jemand warum, und wie wann das Problem lösen kann?

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

17.09.2003, 19:03

Hast Du das wirklich wörtlich so hingeschrieben?

3

17.09.2003, 19:14

wenn das wirklich so steht musst du vor jedes public noch ein " : " setzen.

Anonymous

unregistriert

4

17.09.2003, 19:21

Ich hab das natürlich nicht wortwörtlich geschrieben, und die : hab ich halt vergessen!

ich hab ne Interface Klasse
class IDevice;
eine Device Implementation
class CDevice : public IDevice;
und eine die von CDevice abgeleitet ist
class CWin32Device : public CDevice;

CDevice* = new CWin32Device;

Alles klar?

::Apfelpflaume

5

17.09.2003, 19:36

Wieso haste denn diese doppelte ableitung vom IDevice Interface? Poste mal die genaue Fehlermeldung.

Noch'n Tipp am Rande: CDevice ist ebenfalls ein Interface. Jedenfalls nach deiner Beschreibung. Daher mach das 'C' da wech.

Oder ist CDevice schon ne Konkrete Implementation des Interfaces IDevice?
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Anonymous

unregistriert

6

17.09.2003, 20:01

Also CDevice implementiert einige Methoden von IDevice,
andere sollen wiederum in CWin32Device Erstellt werden.

C:\Dokumente und Einstellungen\eiDos\Desktop\Docs\Workspace\Current\nEAT\nEAT.cpp(8) : error C2243: 'type cast' : conversion from 'class Engine::CWin32Device *' to 'class Engine::IDevice *' exists, but is inaccessible

Anonymous

unregistriert

7

17.09.2003, 20:07

Wäre das eigentlich ein upcast oder ein downcast??

8

17.09.2003, 20:09

Schau mal nach ob du nicht vergessen hast alles auch "public" zu vererben. Vieleicht haste die ja nur verschrieben, oder vergessen.

Laut fehlermeldung tritt nämlich genau dieser fall ein. Kannst dir ja mal die Beschreibung der Fehlermeldung anschauen. Evenlt. haste z.B. in IDevice vergessen die Methoden public zu machen.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Anonymous

unregistriert

9

17.09.2003, 20:16

Alles klar, ich hatte tatsächlich ein public vergessen!! FUCK@R$%$§
Naja, trotzdem nochmal:

Ist das ein Up oder ein Downcast?

Anonymous

unregistriert

10

18.09.2003, 01:23

Nochwas:
Welcher cTor wird eigentlich zuers ausgeführt????

Werbeanzeige