gpt4 book ai didi

c++ - C++中的类型转换和引用

转载 作者:行者123 更新时间:2023-11-30 00:57:16 25 4
gpt4 key购买 nike

请看下面的调用和对应的函数,

long pagenumber = 0;
Node *newNode = createNode();
bufMgr->writePage(pageNumber,(char*)newNode);

writePage声明如下

writePage(long &pageNumber,char* &node)

writePage 接受长引用和 char* 引用。上面没有编译,显示如下错误

no matching function for call to ‘SampleBufferManager::writePage(long int&, char*)’
SampleBufferManager.h:28: note: candidates are: bool SampleBufferManager::writePage(long int&, char*&)

任何人都可以帮助我,如何处理这个问题......类型转换正在解决这个问题,如果我按照以下方式进行代码编译:

long pagenumber = 0;
Node *newNode = createNode();
char *test = (char*)newNode;
bufMgr->writePage(pageNumber,test);

问题怎么解决??

最佳答案

您不能传递对 临时 右值的引用(感谢 curiousguy)。你必须创建一个变量并传递它:

char* c = (char*)newNode;
bufMgr->writePage(pageNumber, c);

关于c++ - C++中的类型转换和引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8512213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com