问题描述
|
在C ++卷1中的思考中,第16章:模板简介。
上下文:
请注意,不仅仅是说:
friend iterator; // Make it a friend
该代码具有:
friend class iterator; // Make it a friend
这很重要,因为名称\“ iterator \”已在包含文件的范围内。
上面的Eckel到底是什么意思?
似乎friend iterator
编译正确,我看不到差异。谁能告诉答案?谢谢
解决方法
根据C ++ 03标准第11.4节:
在类的朋友声明中应使用详尽的类型说明符。
因此,按照规范,编译器将警告您“ 3”的朋友声明必须是详细的类名。如果不是,则该编译器在此特定方面不符合该标准。
什么是精心设计的类型说明符?
C ++使用详细的类型说明符来明确告知编译器将类视为类。我认为MSDN可以比我更好地解释它,因此请查看此详细解释。