2017-02-24 4 views
4

イムしかし、私はそれを実行すると、これをスローします。ここではC++静的テンプレートメソッドにエラーの呼び出しに該当する機能別のクラスから静的メソッドを呼び出そうと

PagedArray.cpp:21:37: error: no matching function for call to ‘FileManager::loadPage(int&)’ 
page = FileManager::loadPage(index); 

は私が呼び出そうとするコードですクラスFileManagerの

#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.cppそして、これは次のとおりです:それから

FileManager.h

#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方法では、ちょうど私が考えるその本当に関連していないので、テストを行うことです。私が何かを逃した場合、あなたが何かを必要とする場合

答えて

4

FileManager::loadPageの下にそれを残すよう が、これはここで私の最初の時間申し訳あり、自動的に推定することができないテンプレートパラメータを持つ関数テンプレートです。したがって、明示的に指定する必要があります。例えば

page = FileManager::loadPage<T>(index); 
//       ~~~ 
関連する問題