设置了友元却 cannot access private member declared in class,解决必重谢!该如何处理

设置了友元却 cannot access private member declared in class,解决必重谢!!!!!!!!!!!!!!!!!!
#include<iostream>

using namespace std;

class Ratio{
riend Ratio operator*(const Ratio&,const Ratio&);
     friend ostream& operator<<(ostream&,const Ratio&);
private:
int num,den;
static int count;
public:
    Ratio(int n=1,int d=1):num(n),den(d){cout<<"Radio lives!"<<endl;   count++;};
Ratio(const Ratio& r):num(r.num),den(r.den){cout<<"Copy!"<<endl;   count++;};
~Ratio(){cout<<"Radio dies!"<<endl; count--;};
Ratio& operator=(const Ratio&);
static int getCount(){return count;};

};

int Ratio::count=0;
Ratio& Ratio:: operator=(const Ratio& r){
    num=r.num;
den=r.den;
cout<<"Overwrite = !"<<endl;
return *this;
}

ostream& operator<<(ostream& o,const Ratio& r){
  o<<r.num<<"/"<<r.den;
  return o;
}

Ratio operator*(const Ratio& r1,const Ratio& r2){
   return Ratio(r1.num*r2.num,r1.den*r2.den);
}


编译时报错:

error C2248: 'num' : cannot access private member declared in class 'Ratio'
see declaration of 'num'
error C2248: 'den' : cannot access private member declared in class 'Ratio'
see declaration of 'den'
error C2593: 'operator <<' is ambiguous
执行 cl.exe 时出错.

1 error(s), 0 warning(s)

明明已经设置了友元,为什么不能访问私有变量啊?本人小白一名,求大神指教!必重谢!
------解决思路----------------------
没看出啥问题,试了一下(vs2013)也可以。
------解决思路----------------------
引用:
没看出啥问题,试了一下(vs2013)也可以。

同没看出问题,试了下,VS2013 和 GCC4.8 下也没有问题
------解决思路----------------------
试了下,VS2010 和 GCC4.8 下也没有问题