Я хочу передать указатель на функцию в классе, но он показывает ошибку и, честно говоря, я не знаю почему. Я внимательно следил за учебником, где написано так, но они не имеют проблем, пока я это делаю. Может ли кто-нибудь дать несколько советов? Я относительно новичок в C++. Заранее спасибо.Передача указателя на функцию C++
Если это помогает, здесь я создаю прототип словаря, здесь я пытаюсь читать из входных пар пар слов и сохранять их в связанном списке, поскольку я должен использовать его. Я использую программу Code :: Blocks.
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
//-------------------------------
struct node
{
string Language;
string English;
node* next;
};
//-------------------------------
class Dictionary //class where all functions will go
{
public:
void readFirstElement(node *head, node *tail);
void readElements(node* head, node* tail);
// void insertElements();
// void deleteElements(node* &head, node* &tail);
//-------------------------------
void readFirstElement(node *head, node *tail)
{
string word1, word2;
node* temp;
ifstream input;
input.open("input.txt");
input >> word1 >> word2;
temp=new node;
temp->Language=word1;
temp->English=word2;
temp->next=NULL;
cout << temp->Language <<" ir "<< temp->English << endl;
head=temp;
tail=temp;
input.close();
}
//-------------------------------
void readElements(node* &head, node* &tail)
{
string word1, word2;
node* temp;
ifstream input;
input.open("input.txt");
while (!input.eof())
{
input >> word1 >> word2;
temp=new node;
temp->Language = word1;
temp->English=word2;
tail->next=temp;
tail=temp;
}
tail->next=NULL;
input.close();
}
int main()
{
node* head = NULL;
node* tail = NULL;
Dictionary ob;
ob.readFirstElement(&head, &tail);
ob.readElements(&head, &tail);
node* temp = head;
return 0;
}
Основная ошибка это пишет ошибка: 'аннулируются словарь :: readFirstElement (узел *, узел *)' не может быть перегружен.
Вам нужно поместить определения метода в файл реализации - в этом случае вы объявляете две пары методов с одинаковой сигнатурой в классе 'Dictionary', что является недопустимым. – ArchbishopOfBanterbury