Xervos
Erfahrenes Mitglied
Hallo Leute,
da ich ja gerade beim einlernen bin was c++ angeht bin ich gerade auf das Thema Pointer und adresse gestoßen wie soll es anders sein, verstehe ich das natürlich nicht gleich auf anhieb
.
So meine Aufgabenstellung nun. Ich möchte gerne in ein Window buttons zeichnen. Jetzt habe ich mir eine Klasse gebastelt die einen button abbildet.
so jetzt jetzt lege ich einen Button mit new an und möchte den dann auf eine Liste draufpacken.
diese habe ich so angelegt
So jetzt erzeuge ich meinen Button mit dem überladenen Konstruktor:
so die ganzen Variablen bekomme ich selber schon übergeben. Ok wurde erzeugt und jetzt will ich das ganze auf die Liste Packen, natürlich nur die Adresse dazu und keine Kopie.
so geht das aber nicht, was mache ich falsch ? Habe ich dir Liste überhaupt richtig angelegt oder ist das auch falsch ****
gehört die Liste und die Übergabe vll so ****
Ich will ja nur die Speicheradresse haben um damit dann über einen Pointer auf die Klasse zugreifen zu können.
Kann mir da einer Helfen wie das den genau jetzt geht ****
Bitte bin schon am verzweifeln
da ich ja gerade beim einlernen bin was c++ angeht bin ich gerade auf das Thema Pointer und adresse gestoßen wie soll es anders sein, verstehe ich das natürlich nicht gleich auf anhieb

So meine Aufgabenstellung nun. Ich möchte gerne in ein Window buttons zeichnen. Jetzt habe ich mir eine Klasse gebastelt die einen button abbildet.
Code:
class button
{
public:
button(const std::String &sButtonImageFile,
float fXposition,
float fYposition,
float fLength,
float fHeight,
GameState::GameState gsDrawOnGameState);
button();
~button();
// Functions for Set the Button Visible/Invisible this flag is stronger then bAvailability
void SetButtonVisible(); // This function shoule be Called to set the Drawbutton flag Visible
void SetButtonInVisible(); // This function shoule be Called to set the Drawbutton flag to InVisble
bool Visibility(); // This Function Returns if the Button should be Drawn or not
// This Function Just say if the Aktiv/NoAktiv state should be performed
void SetButtonEnable(); // This Function should be called to Enable the Button
void SetButtonDisable(); // This Function should be called to Disable the Button
bool Availability(); // This Function Returns if the Button is ClickAble or not
//This Functions should be called to Set the Button Aktiv or not
void SetButtonAktiv(); //will set the Button to Aktiv
void SetButtonInaktiv(); //will set the Button to InAktiv
bool Activity();
// Set SubRect for the Button and his two States
void SetInAktivRectAngle(sf::IntRect irInAktivRect); // this Function should be Called to set SubRect to show when Button is not Aktiv -- NO Mouse over
void SetAktivRectAngle(sf::IntRect irAktivRect); // this Function should be Called to set SubRect to show when Button is Aktiv -- When Mouse over
//Set the GameState when the Button Is Fired
void SetGameStateWhenButtonFired(GameState::GameState &gsButtonFired); // this Function should be called the State which will be Set when Button is Fired
//ButtonFired Function
GameState::GameState ButtonFired(); // This Function returns the GameState which should be set when button is fired
// When should the Button be Loaded
GameState::GameState& GetShowOnGameState();
// Get The Sprite
sf::Sprite& GetSprite();
private:
sf::image _iLoadImage;
sf::Sprite _spButtonSprite;
sf::IntRect _irAktivRect;
sf::IntRect _irInAktivRect;
bool _bVisibility;
bool _bAvailability;
bool _bActivity;
float _fLength;
float _fHeight;
GameState::GameState _gsLoadOnGameState;
};
so jetzt jetzt lege ich einen Button mit new an und möchte den dann auf eine Liste draufpacken.
diese habe ich so angelegt
Code:
std::list<Button> ButtonList;
So jetzt erzeuge ich meinen Button mit dem überladenen Konstruktor:
Code:
Button *_Button = new Button(i_szButtonImageFile, fXposition, fYposition, fLength, fHeight,gsDrawOnGameState);
so die ganzen Variablen bekomme ich selber schon übergeben. Ok wurde erzeugt und jetzt will ich das ganze auf die Liste Packen, natürlich nur die Adresse dazu und keine Kopie.
Code:
ButtonList.push_front(_Button);
so geht das aber nicht, was mache ich falsch ? Habe ich dir Liste überhaupt richtig angelegt oder ist das auch falsch ****
gehört die Liste und die Übergabe vll so ****
Code:
std::list<Button*> ButtonList;
Code:
ButtonList.push_front((*_Button));
Ich will ja nur die Speicheradresse haben um damit dann über einen Pointer auf die Klasse zugreifen zu können.
Kann mir da einer Helfen wie das den genau jetzt geht ****
Bitte bin schon am verzweifeln