Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;错误:没有用于调用静态模板方法的匹配函数_C++_Templates_Compiler Errors_Static Methods - Fatal编程技术网

C++ C++;错误:没有用于调用静态模板方法的匹配函数

C++ C++;错误:没有用于调用静态模板方法的匹配函数,c++,templates,compiler-errors,static-methods,C++,Templates,Compiler Errors,Static Methods,我试图从另一个类调用静态方法,但当我运行它时,它抛出以下内容: 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/FileMana

我试图从另一个类调用静态方法,但当我运行它时,它抛出以下内容:

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();

}
#包括“PagedArray.h”
#包括“./Entidades/FileManager.h”
模板
int*PagedArray::运算符[](int索引){
Page*Page=nullptr;
对于(inti=0;ipagesQueue->Size();i++){
如果(index==(*(this->pagesQueue->get(i)->getDato())->getlineactual()){
page=*this->pagesQueue->get(i)->getDato();
}
}
如果(第==nullptr页){
page=FileManager::loadPage(index);//这就是问题所在
}
返回页面->getInfo()->get(索引)->getDato();
}
这是FileManager类:

FileManager.h

#include "../Estructuras/Page.h"


class FileManager {

public:

FileManager();

template <typename T>
static Page<T>* loadPage(int index);
};
#包括“./est结构/Page.h”
类文件管理器{
公众:
文件管理器();
模板
静态页面*加载页面(int索引);
};
FileManager.cpp

#include "FileManager.h"

FileManager::FileManager(){}

template <typename T>
Page<T>* FileManager::loadPage(int index) {
    Page<T>* page = nullptr;
    return page ;
}
#包括“FileManager.h”
FileManager::FileManager(){}
模板
页面*文件管理器::加载页面(int索引){
Page*Page=nullptr;
返回页面;
}
loadPage方法中的主体只是为了进行测试,所以我认为它不是真正相关的。
抱歉,如果我遗漏了一些内容,这是我第一次来这里,因此如果您需要其他内容,请将其保留在下面

FileManager::loadPage
是一个函数模板,它有一个无法自动推导的模板参数。因此,您必须显式地指定它。e、 g

page = FileManager::loadPage<T>(index);
//                          ~~~
page=FileManager::loadPage(索引);
//                          ~~~