Пожалуйста, посмотрите на следующий вызов и соответствующей функции,типажей и ссылка в C++
long pagenumber = 0;
Node *newNode = createNode();
bufMgr->writePage(pageNumber,(char*)newNode);
и writePage объявляется следующим
writePage(long &pageNumber,char* &node)
writePage принимает длинную ссылку и символ * эталонную. выше не компилируется, он показывает следующую ошибку
no matching function for call to ‘SampleBufferManager::writePage(long int&, char*)’
SampleBufferManager.h:28: note: candidates are: bool SampleBufferManager::writePage(long int&, char*&)
Может кто-нибудь помочь мне, как справиться с этим ... The напечатанный делает проблему, и код компилируется, если я это сделать в следующим образом:
long pagenumber = 0;
Node *newNode = createNode();
char *test = (char*)newNode;
bufMgr->writePage(pageNumber,test);
Как решить проблему?
Вы уже решили проблему передачи справки. Могут быть другие проблемы с этой реализацией, хотя ;-) – AJG85
Подождите, так почему вы не хотите создавать переменную? Это единственный способ сделать это; он не будет работать, как сейчас, только с актерским составом. (См. Ответ Оли, если функции не нужно модифицировать 'char *', и в этом случае вам не нужно создавать переменную) –
Проблема здесь: что делает эта функция WRT 'char'? Должна ли эта функция действительно принимать «Узел» и «? Ты можешь починить это? – curiousguy