Private/Protected variable "Fehler: in diesem Zusammenhang"

Habe ich eine Klasse, basierend auf der SFML gamefromscratch.com tutorials, genannt "VisibleGameObject" Innerhalb dieser Klasse wird eine private variable "_sprite", sowie eine "getSprite ()" - Funktion, die ich versuchte, so werden beide geschützt und der öffentlichkeit. (Sogar öffentlich, er sagt immer noch "_sprite" privat ist, obwohl die öffentliche Funktion liefert die variable).

In meinem OnRender-Klasse, erstelle ich zwei VisibleGameObjects.

VisibleGameObject _testtile1;
VisibleGameObject _cursorSprite;

Aber wenn ich ziehen Sie zum zeichnen der sprites, ich bekomme den Fehler: in diesem Zusammenhang.

_mainWindow.draw(_cursorSprite._sprite);

alternativ habe ich versucht (mit getSprite() als protected oder public).

_mainWindow.draw(_cursorSprite.getSprite());

Doch immer, "Fehler:" sf::Sprite VisibleGameObject::_sprite' ist privat. Fehler: in diesem Zusammenhang"

Macht keinen Sinn für mich, weil

1) _sprite ist eine variable VisibleGameObject. Es kann privat sein, aber es wird nicht zugegriffen, die durch nichts, aber seine eigene ursprüngliche Klasse "VisibleGameObject". Ich dachte, Klassen zugreifen können Ihre eigenen Variablen, auch wenn Sie eine neue instanziierte Objekt in der anderen Klasse?

2) getSprite() public ist, und gibt die private variable, aber es ist NOCH zu sagen _sprite ist privat? Das macht für mich keinen Sinn! Alles, was ich gelernt habe über Getter und Setter, sagt, dass die öffentliche Funktion zurückgeben KANN eine private variable, denn das ist der Sinn dieser ganzen Getter.

sf::Sprite& VisibleGameObject::getSprite()
{
return _sprite;
}




class VisibleGameObject
{
public:
VisibleGameObject();
virtual ~VisibleGameObject();

 private:
sf::Sprite  _sprite;



protected:
sf::Sprite& getSprite();

ODER

public:
sf::Sprite& getSprite();
  • O.....k... manchmal glaube ich, dass mein compiler ist fehlerhaft. Ich habe gerade versucht, getSprite() public, und jetzt funktioniert es. Funktioniert immer noch nicht, wie Geschützt obwohl, oder machen _sprite Geschützt. Und ich verstehe immer noch nicht warum _sprite kann nicht zugegriffen werden durch ein eigenes Objekt der Klasse.
InformationsquelleAutor | 2013-05-02
Schreibe einen Kommentar