Hi All,
I am facing compilition error for following code:
I am getting following errors, even though i am accessing private variables via friend function: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; }
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