-1
当我调用使用默认参数的函数时出现错误。使用默认参数调用函数时发生编译错误
命令我使用的编译是
g++ -c cache.cpp
和错误是:
cache.cpp: In member function ‘bool mem::read(long unsigned int)’:
cache.cpp:205:88: error: no matching function for call to ‘vcache::swap(long unsigned int&, bool&)’
cache.h:97:23: note: candidate is: long unsigned int vcache::swap(long unsigned int, bool, int)
cache.cpp: In member function ‘void mem::write(long unsigned int)’:
cache.cpp:367:92: error: no matching function for call to ‘vcache::swap(long unsigned int&, bool&)’
cache.h:97:23: note: candidate is: long unsigned int vcache::swap(long unsigned int, bool, int)
正如你可以上线#569在看函数vcache :: swap已被定义,我为第三个参数提供了一个默认值。 当我在函数调用期间没有指定第三个参数时出现问题。如果我通过明确指定第三个参数来运行它,它会正确编译。
我无法理解为什么会发生这种情况。
这是太多的代码要立即理解。尝试缩小问题代码片段并在此处发布。您应该开始查看编译器错误中存在的行号。在这种情况下,再看看'cache.cpp'中的第205和367行以及'cache.h'中的第97行。 –