下面一段:
template<class T> class mytem {
private:
T ac;
public:
mytem(T av=0):ac(av) {}
mytem(const mytem& ra):ac(ra.ac) {}
friend mytem<T>& myfriend(mytem<T>& rt){
cout<<rt.ac<<endl;
return rt;
}
void show() {
cout<<ac<<endl;
}
};
可以通过编译.
template<class T> class mytem {
private:
T ac;
public:
mytem(T av=0):ac(av) {}
mytem(const mytem& ra):ac(ra.ac) {}
friend mytem<T>& myfriend(mytem<T>& rt);
void show() {
cout<<ac<<endl;
}
};
这样把友元定义在外面就不通过骗译了,是怎么回事呢,我用的是DEV C++;
模版友元