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

19.10.2014, 12:04

[C++] L-Value

Guten Tach,

Ich habe vorhin eine Klasse geschrieben, bin aber beim Konstruktor gescheitert wegen einem Error.


IntelliSense: Der Ausdruck muss ein änderbarer lvalue sein.

Naja nun zum code:


C-/C++-Quelltext

1
2
3
4
5
6
    pPlayer = Player;   
pTree = tree; //Hier ist der Error
//und in der .h Datei habe ich:
private:    
player *pPlayer;    
Tree *pTree[MAX_TREES];

2

19.10.2014, 12:33

Etwas mehr Code wäre ganz gut, und du solltest auch die Fehlermeldung vom Compiler beachten und hier posten, nicht nur die von IntelliSense, welche ab und zu auch mal falsch ist. Aber so wie es aussieht, weist du einem Array von Zeigern vom Typ Tree etwas zu, was nicht funktioniert. Was willst du denn erreichen?

3

19.10.2014, 12:50

Naja eig. möchte ich im Konstruktor dem privaten Zeiger pTree die vom Konstruktor übergebenen "Trees" übergeben...

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

4

19.10.2014, 13:04

Von welchem Typ ist tree? Du erzeugst da nämlich ein Array aus Tree-Pointern.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

5

19.10.2014, 13:24

Tree ist eine eigene Klasse die ich zuvor erstellt habe.

birdfreeyahoo

Alter Hase

Beiträge: 756

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

6

19.10.2014, 13:52

Konstruktor-Code pls.

7

19.10.2014, 15:53

Konstruktor-Code pls.

Von der Klasse Tree?

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
    treeTexture = new sf::Texture;
    treeSprite = new sf::Sprite;

    sf::Image subImage;
    subImage.loadFromFile(texturePath);
    subImage.createMaskFromColor(sf::Color::White);

    treeTexture->loadFromImage(subImage);
    treeSprite->setTexture(*treeTexture);
    treeSprite->setPosition(pos);
    treeSprite->setScale(0.9f, 0.9f);

8

19.10.2014, 16:11

pTree lässt sich so nicht ändern. Du müsstest pTree als Zeiger definieren. Wenn tree ein Array ist, könntest du pTree auf &tree setzen oder auch nur auf tree, je nachdem, ob du tree als Zeiger oder als Array mit fester Größe definiert hast.

Quellcode

1
2
3
4
5
6
7
int *Test = new int[10];
int Test2[10];

int *pTest=Test; //geht
int *pTest2=&Test2; //geht
int *pTest3[10]; pTest3[0]=Test; //geht
pTest3[0][1]=5; //Test[1] ist jetzt 5
Cube Universe
Entdecke fremde Welten auf deiner epischen Reise durchs Universum.

Werbeanzeige