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

Jo

Frischling

  • »Jo« ist der Autor dieses Themas
  • Private Nachricht senden

1

10.06.2005, 15:37

Funktionsübergabe-Problem

Ich habe meine eigene Stringklasse programmiert. Jetzt will ich zum Laden eines Models eine konstaten String, also zum Beispiel: "C:\\Modell\\Test.3ds", übergeben. Ich habe es jetzt mal so probiert:

Die Funktion ist so Deklariert und Implementiert:

C-/C++-Quelltext

1
2
3
4
5
6
HRESULT Load(const rtString& cFileName);

HRESULT rtGModel::Load(const rtString& cFileName)
{
    return S_OK;
}


Jetzt rufe ich diese Funktion so auf:

C-/C++-Quelltext

1
    Load("C:\\Modell\Test.3ds");


Dies funktioniert so, aber ist es richtig, dass rtString eine Referenz ist. Ich weiß nicht, ob dies so OK ist.

bassdscho

Alter Hase

Beiträge: 1 056

Wohnort: Heuchlingen

Beruf: Student - Technische Informatik

  • Private Nachricht senden

2

10.06.2005, 17:10

Das ist schon Ok. Referenzen sind schneller als Variablen, da nicht eine Kopie des überbenenen gemacht werden muss sondern nur eine Adresse gespeicher werden muss.
Außer du hast was gegen Referenzen, dann schreibst du einfach

C-/C++-Quelltext

1
Load(rtString cFileName)
Verlierer jammern immer von wegen ihr bestes!
Sieger gehen nach Hause und vögeln die Ballkönigin!

helium

Treue Seele

Beiträge: 180

Wohnort: NRW, Burscheid (nahe Köln)

  • Private Nachricht senden

3

12.06.2005, 14:11

Es ist eine konstante Referenz. Deswegen geht es. Es wird ein temporäres rtString-Objekt erstellt (du scheinst einen nicht "explicit" Konstruktor für char * zu haben) und dieses übergeben.

Darf man fragen welche Vorteile dein rtString gegenüber dem C++-eigenen std::string hat?
Why is 6 afraid of 7?
Because 7 8 9

Jo

Frischling

  • »Jo« ist der Autor dieses Themas
  • Private Nachricht senden

4

12.06.2005, 20:18

Ich glaube, dass meine eigene Klasse eher schlechter ist als std::string. Es ist halt einfach nur zur Übung. Davor habe ich immer mit der MFC gearbeitet und dort CString verwendet.

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

5

12.06.2005, 20:36

Ne eigene Stringklasse ist doch ok. Man kann da sehr gut das ganze Zeiger Handling und so üben!

Patrick

Alter Hase

Beiträge: 1 264

Wohnort: Düren

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

6

12.06.2005, 20:48

Tipp:

C-/C++-Quelltext

1
Load("C:\\Modell\Test.3ds");

Hier fehlt ein \ !

Besser:

C-/C++-Quelltext

1
Load("C:/Modell/Test.3ds");


- Patrick

Werbeanzeige