2015-08-25 3 views
0

Я пытаюсь создать программу лабиринта на C++ с использованием стека (стандартный метод, я считаю), но я просто не могу понять, как передать объект стека ссылкой на другие функции в программе. Объявление функции в заголовочном файле имеет все, что я вижу, что она нужна, но я продолжаю получать сообщение об ошибке при попытке запустить программу. Это объявление функции, а также использование функции в файле реализации:Передача объекта стека в OOP

реализации:

void Maze::backTrack(int & rows, int & cols, stack <int> &maze) 

Заголовок:

void backTrack(int & rows, int & cols, stack <int> & maze); 

я получаю сообщение об ошибке:

error C2061: syntax error: identifier 'stack' 

Спасибо за помощь!

+0

кажется, что вы объявляете что-то неправильно, но не уверен, что язык вы используете, так косяк предложить любую помощь, вы можете обновить свой пост, чтобы включить конкретный тег языка не только объектно-ориентированного программирования (даже не уверен, что тег относится к этим вопросам) – workabyte

+0

Спасибо, я обновил его. – CluelessStan

ответ

1

Вам необходимо передать имя пространства имен std::stack и включить его или переслать. Так оно и должно быть:

void Maze::backTrack(int & rows, int & cols, std::stack<int> &maze) 
+0

Удивительный, спасибо! – CluelessStan

+0

@CluelessStan, если мой ответ решает вашу проблему, пожалуйста, отметьте его как хороший ответ и, возможно, задумайтесь над точкой;) Также подумайте, нужно ли передавать int & по ссылке. Если вы его не модифицируете, то передача небольшого объекта по значению часто выполняется быстрее и всегда не медленнее, чем по ссылке. – CyberGuy

+0

О, извините. Я не понимал, что могу это сделать. Это не позволит мне проголосовать за ваше сообщение, пока у меня не будет репутации не менее 15, но я действительно отмечал ваш ответ как хороший. Хотел бы я сделать больше. Еще раз спасибо! – CluelessStan