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

1

26.02.2005, 10:50

Engine-Grundgerüst

Hallo.
Ich will bald anfangen eine eigene Engine zu schreiben.
Meine Idee:
ich mach mehrere dll's eine für mathe eine für grafik eine für input u.s.w
sind abstrakte klassen eine gute Lösung oder gibt's da was besseres?
wie habt ihr das so gemacht?
Vielen Dank :huhu:

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

26.02.2005, 11:01

abstrakte klassen als interfaces sind eine gute lösung ;)

3

26.02.2005, 14:12

ernst

hallo
@dot ist das ernst gemeint?

bin jetzt der meinung das das mit abstrakten klassen doch nicht so gut geht. was für möglichkeiten gibt's noch?
Vielen Dank :huhu:

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

26.02.2005, 16:40

das is definitiv ernst gemeint...

is imho die beste und einfachste lösung!

5

26.02.2005, 17:57

hm...

das ist doch total umständlich(siehe code unten) oder ich mach einen fehler was ich auch denke wie muss ich es dann richtig machen?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include <iostream>
using namespace std;

class CMath
{
public:
    CMath();
    virtual ~CMath();
    virtual void foo() = 0;
private:

};
class CVector2 : public CMath
{
public:
    CVector2();
    virtual ~CVector2();
    virtual void foo();
    void add(int x,int y);
};
class CVector3 : public CMath
{
public:
    CVector3();
    virtual ~CVector3();
    virtual void foo();
};
int main()
{
    CMath* math;
    math = new CVector2();
    math->foo();
    //add(3,3);//wie soll ich dann die add-funktion aufrufen?

    delete math;
    math = new CVector3();
    math->foo();
    delete math;
    return 0;
}
CMath::CMath()
{
    cout<<"CMath()-Konstruktor"<<endl;
}
CMath::~CMath()
{
    cout<<"CMath()-Destruktor"<<endl;
}
CVector2::CVector2()
{
    cout<<"CVector2-kon"<<endl;
}
CVector2::~CVector2()
{
    cout<<"CVector2-des"<<endl;
}
void CVector2::foo()
{
    cout<<"foo2d"<<endl;
}
void CVector2::add(int x,int y)
{
    cout<<"2d-add"<<x+y<<endl;
}
CVector3::CVector3()
{
    cout<<"CVector3-kon"<<endl;
}
CVector3::~CVector3()
{
    cout<<"CVector3-des"<<endl;
}
void CVector3::foo()
{
    cout<<"foo3d"<<endl;
}

Vielen Dank

serial chiller

Frischling

Beiträge: 61

Wohnort: Rheinbach ;-(

Beruf: berufs chiller

  • Private Nachricht senden

6

26.02.2005, 18:05

was macht eigentlich "=0" spezielles hinter einer virtuellen funktion?

Till

Alter Hase

Beiträge: 378

Wohnort: Lincoln College, Oxford

Beruf: Student

  • Private Nachricht senden

7

26.02.2005, 18:08

Zitat von »"serial chiller"«

was macht eigentlich "=0" spezielles hinter einer virtuellen funktion?


Das macht die Methode rein virtuell, das heißt, die Klasse wird abstrakt und kann nicht instanziiert werden. Damit zwingt man eine abgeleitete Klasse, diese Methode wirklich zu implementieren, falls sie nicht auch abstrakt sein sollte.
DOMINVS ILLVMINATIO MEA
---
Es lebe unmanaged Code!
---
>> Meine Uni <<

serial chiller

Frischling

Beiträge: 61

Wohnort: Rheinbach ;-(

Beruf: berufs chiller

  • Private Nachricht senden

8

26.02.2005, 18:18

danke

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

9

26.02.2005, 18:28

ich glaub du hast noch nicht ganz verstanden wie das mit abstrakten interfaces und dlls gedacht is...

schau dir mal das tutorial hier an ;)

10

26.02.2005, 19:06

danke aber

Vielen Dank für's Tutorial aber schlauer bin ich irgendwie auch nicht. :crying: Kann mir das mal Bitte jemand erklären.
Vielen Dank :huhu:

Werbeanzeige