Давайте просто скажем, что у нас есть два класса, A
и B
.
Вот код для них обоих
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();
}
проблема в том, что я хочу получить доступ к х, но яне хочу ничего передавать в качестве аргумента моей функции, я смотрю на друга и наследование, но оба, кажется, не помогли мне, поправьте меня, если я ошибаюсь.
как мне найти х в функции FindY()
.
Я собираюсь использовать статический метод, но в моем случае я получаю эту ошибку.
Ошибка 2, ошибка LNK2001: неразрешенный внешний символ "public: static class 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
Вот как я это объявил
static vector<GUIDialog *> SubMenu;
Я получаю эту ошибку из-за этой строки
SubMenu.resize(3);