麻烦各位帮我看看是怎么回事(友元函数访问私有成员变量的问题)
#include "iostream"
using namespace std;
class time;
class time
{
public :
time(int,int,int);
static friend void display(time &);
private:
int hour;
int minute;
int sec;
};
time :: time(int h, int m,int s)
{
hour=h;
minute=m;
sec=s;
}
void diplay(time &t)
{
cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;
}
int main()
{
time t1(10,13,56);
display(t1);
return 0;
}
Compiling...
sea.cpp
F:\sea\sea.cpp(24) : error C2248: 'hour' : cannot access private member declared in class 'time'
F:\sea\sea.cpp(10) : see declaration of 'hour'
F:\sea\sea.cpp(24) : error C2248: 'minute' : cannot access private member declared in class 'time'
F:\sea\sea.cpp(11) : see declaration of 'minute'
F:\sea\sea.cpp(24) : error C2248: 'sec' : cannot access private member declared in class 'time'
F:\sea\sea.cpp(12) : see declaration of 'sec'
Error executing cl.exe.
sea.obj - 3 error(s), 0 warning(s)
[解决办法]
- C/C++ code
#include <iostream>using namespace std;class Time{public :Time(int,int,int);friend void display(Time &t);private:int hour;int minute;int sec;};Time::Time(int h, int m,int s){hour=h;minute=m;sec=s;}void display(Time &t){cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;}int main(){Time t1(10,13,56);display(t1);system("pause"); return 0;}
[解决办法]
大哥,是display,不是diplay