0
我試圖在普通類上實現朋友模板函數。對朋友模板函數的未定義引用
fren.h
#include <iostream>
namespace sn{
class Fren{
private:
int x;
public:
Fren(int y):x(y){
}
template<typename B>
friend void getValue(B& asd);
};
template<typename B>
void getValue(B& asd);
}
fren.cpp
#include "fren.h"
namespace sn{
template<typename B>
void getValue(B& asd){
std::cout<<asd.x<<std::endl;
}
}
的main.cpp
#include "fren.h"
int main() {
sn::Fren f(10);
sn::getValue(f);
return 0;
}
我試圖讓弗倫的私有值x。
但我得到「未定義的引用」錯誤。
閱讀此:[「爲什麼模板只能在頭文件中實現?」](https://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-the- ?頭文件S = 2 | 2.7508)。 – WhozCraig
我能夠通過明確的瞬時實現多個文件的模板類,但這是一個類。我想知道功能是否可行。 –
如果您現在詢問模板函數是否顯式實例化,[是,它們是](http://en.cppreference.com/w/cpp/language/function_template)。 – WhozCraig