Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
abc_d JLI Master Trainee
Alter: 34 Anmeldedatum: 27.01.2003 Beiträge: 615
Medaillen: Keine
|
Verfasst am: 06.09.2003, 11:03 Titel: Überladen von operator[] |
|
|
Ich habe eine klasse:
Code: |
class CMatrix
{
public:
//Blablabla andere Funktionen
//Setzt ein Feld
void SetField(int iWidth,int iHeight,char *pSet);
private:
//Vektor Klasse
vector<vector<char*> > vVector;
}
//Setzt ein Feld
void CMatrix::SetField(int iWidth,int iHeight,char *pSet)
{
//Gibt einen Fehler zurück wenn ein nichtexistierer Wert gefragt wird
if((iWidth > g_iWidth) ||(iHeight > g_iHeight))
{
EXCEPTION("Es wurde ein Feld, das es gar nicht gibt gesetzt!");
}
//Setzt den Vector auf den gewünschten Wert
vVector[iWidth][iHeight]=pSet;
}
|
Jetzt würde es mich interessieren wie ich den operator [] überlade damit ich es so benutzen kann;
CMatrix Test;
char *pSet="Test.png"
int iWidth=3;
int iHeight=1;
Test[iWidth][iHeight]=pSet;
Und nicht wie im moment:
Test.SetField(iWidth,iHeight,pSet); _________________ http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.
Never touch a running System - der Systemling |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 06.09.2003, 11:07 Titel: |
|
|
Ich bin mir nicht sicher aber ich glaube da musst du den =-Operator überladen. Ansonsten würde ich das machen, was ich dir im Chat erzählt hab. _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
abc_d JLI Master Trainee
Alter: 34 Anmeldedatum: 27.01.2003 Beiträge: 615
Medaillen: Keine
|
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 06.09.2003, 11:25 Titel: |
|
|
Das war ca. 10-20 min. her. Du solltest das Kapitel schon studieren und man lernt solche Sachen nunmal nicht so schnell. Wenn wir dir den Quelltext dazu geben hast du Zero gelernt.
Btw.: Das ist ein Buch und kein Tut. ;) _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
Jörg JLI MVP
Anmeldedatum: 19.07.2002 Beiträge: 182 Wohnort: Siegen/NRW Medaillen: Keine
|
Verfasst am: 06.09.2003, 14:28 Titel: |
|
|
Versuch mal das:
Code: | CMatrix
{
...
vector<char*> & operator[] (const int & nWidth)
{
return vVector[nWidth];
}
} |
_________________ www.messiahzone.de.vu |
|
Nach oben |
|
|
abc_d JLI Master Trainee
Alter: 34 Anmeldedatum: 27.01.2003 Beiträge: 615
Medaillen: Keine
|
|
Nach oben |
|
|
Kampfhund Super JLI'ler
Alter: 42 Anmeldedatum: 20.07.2002 Beiträge: 408
Medaillen: Keine
|
Verfasst am: 06.09.2003, 14:59 Titel: |
|
|
eigentlich schon, nur es wird ein vektor zurückgegeben auf den dann der zweite [] operator angewendet wird:
Matrix[x][y] // Matrix[x] gibt einen vector zurück
vector[y] // [y] wird auf den zurückgegebenen vector angewendet |
|
Nach oben |
|
|
abc_d JLI Master Trainee
Alter: 34 Anmeldedatum: 27.01.2003 Beiträge: 615
Medaillen: Keine
|
Verfasst am: 07.09.2003, 14:41 Titel: |
|
|
Ok jetzt kann ich die matrix per
char *pTest=Matrix[2][4];
abfragen.
Wie überlade ich jetzt noch das = ? _________________ http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.
Never touch a running System - der Systemling |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 07.09.2003, 20:14 Titel: |
|
|
Mit dem hier:
Code: | CMatrix::operator= (char* Parameter)
{
//Zuweisung von Parameter auf die Matrix
} |
So müsste es eigentlich klappen _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
|