#include<iostream.h>
template<class T>
class myclass;
template<class T>
void f(myclass<T> &c);
template<class T>
class myclass
{
private:
T value;
public:
friend void f(myclass<T> &c);
T getvalue()
{
return value;
}
void setvalue(T v)
{
value=v;
}
};
template<class T>
void f(myclass<T> &c)
{
cout<<endl<<"function called:\n";
cout<<c.getvalue()<<endl;
}
int main()
{
myclass<int> object;
object.setvalue(6);
f(object);
return 0;
}
此代码涉及具有朋友功能的模板。运行代码时,我收到以下错误:
好的建议。提前谢谢。错误:第22行中对f(myclass&amp;)的未定义引用
答案 0 :(得分:0)
声明好友函数,如
friend void f<>(myclass<T> &c);
同样在“new”C ++标题中,iostream应指定为
#include <iostream>
你应该使用指令
using namespace std;
如果您不想更改程序中的其他代码。
答案 1 :(得分:0)