微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在c中思考时遇到的朋友迭代器和朋友类迭代器有什么区别?

在C卷1中的思考,第16章:模板简介.
上下文:

Notice that instead of just saying:

friend iterator; // Make it a friend

This code has:

friend class iterator; // Make it a friend

This is important because the name “iterator” is already in scope,from an included file.

Eckel上面的意思是什么?
似乎朋友迭代器正确编译,我看不出差异.有人能说出答案吗?谢谢

解决方法

根据C 03标准第11.4节:

精细类型说明符应在类的朋友声明中使用.

因此,根据规范,编译器将警告您迭代器的友元声明必须是详细的类名.如果不是,则编译器在该特定方面不符合标准.

什么是详细说明类型说明符?
C使用详细的类型说明符来明确地告诉编译器将类视为一个类.我认为MSDN可以比我更好地解释它,所以请查看this以获得详细解释.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐