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

Gandi

Frischling

  • »Gandi« ist der Autor dieses Themas

Beiträge: 36

Wohnort: Bayern

Beruf: Elektrotechnikingenieur

  • Private Nachricht senden

1

02.09.2009, 15:14

[Solved] Typedef auf Template-Klasse

Hi,

Habe eine Template-Vector2-Klasse, die ich mit beliebigen Zahl-Typen füttern will, also
Vector2<int> oder Vector2<float> etc.

Jetzt würde ich gerne ein typedef auf diese machen, um "Point2" schreiben zu können, wenn es sich um einen Punkt auf dem Bildschirm handelt, aus Übersichtlichkeitsgründen.

hab folgendes probiert:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
//Vielleicht so...
typedef Vector2<T> Point2<T>

//oder doch mit template
template < typename T >
typedef Vector2<T> Point2<T>

//Vielleicht auch einfach ohne Templates?
typedef Vector2 Point2

//oder so...
typedef Vector2< typename T > Point2< typename T >


aber es wollte alles nicht^^ Benutze btw. Visual C++ 2008 Express

Wäre nett wenn mir jemand die richtige Syntax sagen könnte^^

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

02.09.2009, 15:18

Das geht so nicht. (noch nicht)

In C++0x gibt es das dann. Aber im Moment braucht es ein Workaround, oder was ich eher empfehlen würde das hier:

C-/C++-Quelltext

1
2
3
typedef Vector2<float> Point2f;
typedef Vector2<int> Point; 
..


So viele Möglichkeiten für Points gibt es ja nicht und wenn man sie doch einmal braucht, kann man ja einfach die template Klasse benutzen.

Gandi

Frischling

  • »Gandi« ist der Autor dieses Themas

Beiträge: 36

Wohnort: Bayern

Beruf: Elektrotechnikingenieur

  • Private Nachricht senden

3

02.09.2009, 15:39

Okay, danke für die Info.
Habs jetzt mit einem simplen #define Point2 Vector2 gelöst - nicht so schön wie mit typedef aber es geht^^

Und:
typedef Vector2<float> Point2f;
typedef Vector2<int> Point;

hab ich sowieso schon drin.

4

02.09.2009, 16:41

eine bessere möglichkeit als #define:

C-/C++-Quelltext

1
2
template <typename T>
struct Point<T> : public Vector2<T> {};

5

02.09.2009, 18:07

Zitat von »"WarMuuh!!"«

eine bessere möglichkeit als #define:

C-/C++-Quelltext

1
2
template <typename T>
struct Point<T> : public Vector2<T> {};

damit ist zwar jeder vector ein point, aber nicht jeder point ein vector...was hier wohl aber auch angebracht wäre ;)

6

02.09.2009, 19:37

^genau genommen is damit jeder point ein vektor, da ja point von vector abgeleitet wird, und ich denke, das is genau das, was er wollte...oder?

7

02.09.2009, 19:47

Zitat von »"WarMuuh!!"«

^genau genommen is damit jeder point ein vektor, da ja point von vector abgeleitet wird, und ich denke, das is genau das, was er wollte...oder?

sag ich doch...ihr versteht mich nurn icht :?

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

8

02.09.2009, 19:51

Zitat von »"PCShadow"«

Zitat von »"WarMuuh!!"«

^genau genommen is damit jeder point ein vektor, da ja point von vector abgeleitet wird, und ich denke, das is genau das, was er wollte...oder?

sag ich doch...ihr versteht mich nurn icht :?


Nein. Du behauptest genau das Gegenteil..

Ein point IST-EIN vector, aber vector ist kein point..

9

03.09.2009, 16:09

Zitat von »"drakon"«

Nein. Du behauptest genau das Gegenteil..

Ein point IST-EIN vector, aber vector ist kein point..

mein ich doch...
oh, dreck, vector und point beim schreiben vertaucht, dann kann mcih aj niemand verstehen, sry :lol:

Werbeanzeige