У меня есть класс BinTree
, описывающий бинарное дерево поиска:
class BinTree
{
public:
BinTree();
~BinTree();
bool IsEmpty();
bool IsFull();
const int Size() const;
bool Add(Item data);
bool In(Item data);
bool Delete(Item data);
void Traverse();
...
}
Для класса BinTree, у меня в int main() создан его экземпляр:
#include<iostream>
#include"BinTree.h"
#include"menu.h"
//extern BinTree mytree;
int main()
{
BinTree mytree;//экземпляр
return 0;
}
Мне нужно,чтобы этот экземпляр был доступен и в другом классе- menu
class menu
{
private:
static void upp(string str);
public:
static void addpet();
};
void menu::upp(string str)
{
for (int i = 0; i < str.length; i++)
{
str[i] = toupper(str[i]);
}
}
void menu::addpet()
{
Item temp;
cout << "Please enter name of pet: " << endl;
//std:sin >> temp.Name;
getline(std::cin, temp.Name);
cout << "Please enter pet kind: " << endl;
getline(std::cin, temp.Kind);
upp(temp.Name);
upp(temp.Kind);
mytree.Add(temp);
}
Проблема возникает в этой строчке
mytree.Add(temp);
Потому что "идентификатор mytree не определен". Как тогда сделать так, чтобы класс menu узнал про экземпляр другого класса? Единственное,что мне в голову пришло - сделать глобальную область видимости между файлами с помощью extern
(но это на крайний случай). Есть ли более правильные способы,то есть без использования глобальной переменной?
А если так?
#include<iostream>
#include"BinTree.h"
#include"menu.h"
int main()
{
BinTree mytree;//экземпляр
menu::addpet(mytree); // <- сплавляем дерево по ссылке
return 0;
}
void menu::addpet(BinTree& mytree)
{
...
mytree.Add(temp);
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
написал на взгляд ОБСОЛЮТНО рабочий код, но он не работает(
Пишу приложение, использую qt creator в качестве ide, и понадобилось мне использовать SFML, но возникла проблема: вpro файл добавил код для подключения...
поставил себе задачу при клике на картинку like менять ее на другую в посте, чтобы пользователь понимал, что, что-либо поменялось в initialState у posts добавил...