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

Developer_X

Treue Seele

  • »Developer_X« ist der Autor dieses Themas

Beiträge: 247

Wohnort: Hessen

Beruf: Schüler

  • Private Nachricht senden

1

29.01.2011, 13:07

Probleme beim übergeben von Pointern als Funktionsparameter

Sehr geehrtes Forum, ich habe mal wieder ein Problem :
Warum gibt es folgende Fehlermeldung :

Quellcode

1
2
|error: no matching function for call to 'drawLaserLine(sf::RenderWindow*&, int, int, int&, int, int, const sf::Color&)'| 
|note: candidates are: void Graphics::drawLaserLine(sf::RenderWindow*, int, int, int, int, int, sf::Color&, sf::Color)|

obwohl mein Code so ist:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
    void start() 
    { 
        sf::RenderWindow* w = new sf::RenderWindow();
        drawLaserLine(window,0,100,WIDTH,100,50,sf::Color::Green);
    } 

    void drawLaserLine(sf::RenderWindow* window,int x1,int y1,int x2,int y2,int width,sf::Color& c,sf::Color c2 = sf::Color::White)
    {
        //...
    }


Danke für eure Antworten,

m.f.G. Developer_X
- Die Zeit ist wie ein Fluss, und die Gegenwart wie ein Fels, der von dem Fluss der Zeit geschliffen wird. -
Kevin Riehl

2

29.01.2011, 13:23

Ähm, also das steht doch da. Eine Funktionsdefinition für die Funktionsparameter die du der Funktion übergeben hast gibt es nicht. Also stimmen deine Parameter nicht. (Oder deine Funktion - wie man's nimmt... ^^ )

Wenn mich nicht alles täuscht heißt der Zeiger auf dein RenderWindow w und nicht window ?! Und was ist WIDTH ? Ein Zeiger?


Gruß
SaRu_

Developer_X

Treue Seele

  • »Developer_X« ist der Autor dieses Themas

Beiträge: 247

Wohnort: Hessen

Beruf: Schüler

  • Private Nachricht senden

3

29.01.2011, 14:22

Ja ich habe das jetzt mal zu schnell stark vereinfacht, der code ist so:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
    void start() 
    { 
        int WIDTH = 1440;
        sf::RenderWindow* w = new sf::RenderWindow();
        drawLaserLine(w,0,100,WIDTH,100,50,sf::Color::Green);
    } 

    void drawLaserLine(sf::RenderWindow* window,int x1,int y1,int x2,int y2,int width,sf::Color& c,sf::Color c2 = sf::Color::White)
    {
        //...
    }


Auf jeden fall, es wird fälschlicherweise behauptet, dass ich ein
sf::RenderWindow*& übergebe, und nicht ein sf::RenderWindow*, verstehst du?
Was soll denn das?

M.f.G. Developer-X
- Die Zeit ist wie ein Fluss, und die Gegenwart wie ein Fels, der von dem Fluss der Zeit geschliffen wird. -
Kevin Riehl

4

29.01.2011, 15:00

Gilt jetzt also der Code vom letzten und die Fehlermeldung vom ersten Post?
Liegt es evtl. daran, dass deine Funktion als zweitletzten Parameter sf::Color& will, sf::Color::Green aber const ist?

Developer_X

Treue Seele

  • »Developer_X« ist der Autor dieses Themas

Beiträge: 247

Wohnort: Hessen

Beruf: Schüler

  • Private Nachricht senden

5

29.01.2011, 15:07

:pinch: Ach, daran hatte ich gar nicht gedacht, weil ich so auf das window fixiert war, ... -.-

Jetzt klappts,
danke,
m.f.G: Developer_X
- Die Zeit ist wie ein Fluss, und die Gegenwart wie ein Fels, der von dem Fluss der Zeit geschliffen wird. -
Kevin Riehl

Werbeanzeige