我试图从另一个类中调用静态方法,但是当我运行它时,它抛出了这个:
PagedArray.cpp:21:37: error: no matching function for call to ‘FileManager::loadPage(int&)’
page = FileManager::loadPage(index);
这是我尝试从中调用的代码:
PagedArray.cpp
#include "PagedArray.h"
#include "../Entidades/FileManager.h"
template <typename T>
int* PagedArray<T>::operator[](int index) {
Page<T>* page = nullptr;
for(int i = 0; i < this->pagesQueue->Size(); i++){
if(index == ( *(this->pagesQueue->get(i)->getDato()) )->getLineaActual()){
page = *this->pagesQueue->get(i)->getDato();
}
}
if(page == nullptr){
page = FileManager::loadPage(index); //This is the problem
}
return page->getInfo()->get(index)->getDato();
}
这是FileManager类:
文件管理器
#include "../Estructuras/Page.h"
class FileManager {
public:
FileManager();
template <typename T>
static Page<T>* loadPage(int index);
};
FileManager.cpp
#include "FileManager.h"
FileManager::FileManager(){}
template <typename T>
Page<T>* FileManager::loadPage(int index) {
Page<T>* page = nullptr;
return page ;
}
loadPage方法中的主体只是为了进行测试,因此我认为它并不真正相关。抱歉,如果我错过了什么,这是我第一次来这里,如果您需要其他内容,请在下面填写
FileManager::loadPage
是一个功能模板,其模板参数无法自动推导。因此,您必须明确指定它。例如
page = FileManager::loadPage<T>(index);
// ~~~
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句