Comment accéder à des variables dans une classe différente de l'autre classe?

Laissez juste dire que nous avons deux classes, A et B.

Voici le code pour les deux

class A
{
public:
    int x;
};

class B
{
public:
    int y;
    void FindY() { y = x + 12; }
};

void something()
{
    A fs;
    B fd;
    fs.x = 10;
    fd.FindY();
}

le problème est que je veux accéder à x, mais je ne veux pas passer n'importe quoi comme argument de ma fonction je regarde l'ami et l'héritage, mais les deux ne semblent pas à m'aider, à me corriger si je me trompe.

certains comment j'ai besoin de trouver x en fonction FindY().

Je vais avec la méthode statique, mais dans mon cas, j'obtiens cette erreur.

Erreur 2 erreur LNK2001: symbole externe non résolu "public: static de la classe std::vector<class GUIDialog *,class std::allocator<class GUIDialog *> > Window::SubMenu" (?SubMenu@Window@@2V?$vector@PAVGUIDialog@@V?$allocator@PAVGUIDialog@@@std@@@std@@A) C:\Users\Owner\documents\visual studio 2010\Projects\Monopoly\Monopoly\Window.obj
Voici comment je l'ai déclaré

static vector<GUIDialog *> SubMenu;

Je reçois cette erreur à cause de cette ligne

SubMenu.resize(3);
  • x n'existe pas sans une instance de A. Vous avez besoin pour obtenir à partir de quelque part.
  • Vous devez créer un objet de la classe A et ensuite utiliser A.x. Est que le wat vous demandez ou ai-je raté quelque chose?
  • j'ai mis à jour mon post
  • Pourquoi vous ne voulez pas passer le paramètre à la fonction? Je crois que c'est la question fondamentale qui doit être résolu, plutôt que de l'accès fs.x.
  • Ok n'est pas seulement un fs je vais passer ok?
  • en utilisant une variable statique serait plus facile pour moi

InformationsquelleAutor Ramilol | 2010-12-22