VS2017上C++友元成员函数问题
class Time
{
public:
Time(int, int, int);
~Time();
void displayTime(Date&); // 错误C2061
private:
int hour;
int minute;
int second;
};
class Date
{
public:
Date(int, int, int);
~Date();
friend void Time::displayTime(Date &); //错误C2245
private:
int year;
int month;
int day;
};
错误信息:
错误 C2061 语法错误 : 标识符“Date”
错误 C2245 将不存在的成员函数“Time::displayTime”指定为友元(成员函数签名与所有重载都不匹配)
请告诉这个类友元成员函数哪里出问题了?源代码出自谭浩强的《C++程序设计》。谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
第一行缺少Date类声明。
我将源代码进行了修改的 ,可以参考如下代码 :
下图是成员函数充当友元函数的操作顺序 , 参考《C++ primer 第五版》 总结出的图 :
注意 : 其中的 Window_mgr 等价 Time 类 , Screen类等价Date类