Вы на полпути. Вы должны объявить функции в заголовочном файле, как вы это сделали.
Недостающий шаг заключается в том, что вам не нужно определять функции в теле класса, а вместо этого определять их ниже объявления класса с использованием имени классас оператором разрешения области действия и встроенным оператором.
Другая часть, которую вам не хватает, - это то, что вы объявляете функции в своем классе очереди, которые, вероятно, предназначены для вашей структуры QueueNode.
class Queue{
private:
struct QueueNode{
int size;
std::string party;
QueueNode *next;
};
QueueNode *front;
QueueNode *rear;
public:
// Constructor
Queue();
// Destructor
~Queue();
// Queue operations
std::string getPartyName( const QueueNode * const node ) const;
int getSize( const QueueNode * const node ) const;
void setPartyName( QueueNode & out_node, std::string & p);
void setSize( QueueNode & out_node, int s);
};
inline std::string Queue::getPartyName( const QueueNode * const node ) const
{
return node->party;
}
inline int getSize( const QueueNode * const node ) const {
return node->size;
}
inline void Queue::setPartyName( QueueNode & out_node, std::string & p) {
out_node.party = p;
}
inline void Queue::setSize( QueueNode & out_node, int s) {
out_node.size = s;
}
Непонятно, для каких узлов вы собираетесь устанавливать эти значения, поэтому я добавлю функции с некоторыми допущениями.
В любом случае, я думаю, вы поймете точку. Если вы хотите определить встроенные функции в классе заголовка, вы не можете определить тело внутри самого класса. Вы должны объявить его встроенным, что является предложением компилятора , вне тела класса. Я знаю, что не полностью определил функциональность связанного списка, я оставлю это вам. Но это должно ответить на встроенный вопрос.