"Problem with friend function"
Hi All,
I am facing compilition error for following code:
Code:
Angle.h:
-------
#include <iostream>
using namespace std;
class Angle
{
int deg;
int min;
double sec;
public:
friend istream & operator >> (istream &, Angle &);
friend ostream & operator << (ostream &, Angle &);
};
Angle.cpp:
#include "iostream"
#include "Angle.h"
using namespace std;
istream & operator>> (istream &in, Angle &A)
{
in>>A.deg;
in>>A.min;
in>>A.sec;
}
ostream & operator<< (ostream &out, Angle &A)
{
out<<"Deg: "<<A.deg<<endl;
out<<"Min: "<<A.min<<endl;
out<<"Sec: "<<A.sec<<endl;
}
int main()
{
Angle A;
cin>>A;
cout<<A;
return 0;
}
I am getting following errors, even though i am accessing private variables via friend function:
c:\dev-cpp\examples\angle.cpp(82) : error C2248: 'deg' : cannot access private member declared in class 'Angle'
c:\dev-cpp\examples\angle.h(10) : see declaration of 'deg'
c:\dev-cpp\examples\angle.cpp(83) : error C2248: 'min' : cannot access private member declared in class 'Angle'
c:\dev-cpp\examples\angle.h(11) : see declaration of 'min'
c:\dev-cpp\examples\angle.cpp(84) : error C2248: 'sec' : cannot access private member declared in class 'Angle'
c:\dev-cpp\examples\angle.h(12) : see declaration of 'sec'
c:\dev-cpp\examples\angle.cpp(90) : error C2248: 'deg' : cannot access private member declared in class 'Angle'
c:\dev-cpp\examples\angle.h(10) : see declaration of 'deg'
c:\dev-cpp\examples\angle.cpp(91) : error C2248: 'min' : cannot access private member declared in class 'Angle'
c:\dev-cpp\examples\angle.h(11) : see declaration of 'min'
c:\dev-cpp\examples\angle.cpp(92) : error C2248: 'sec' : cannot access private member declared in class 'Angle'
c:\dev-cpp\examples\angle.h(12) : see declaration of 'sec'
Regards,
Siddu