struct foo { int x; frIEnd int x(foo f) { return f.x; } frIEnd int y(foo f);};int y(foo f) { return x(f); } // no problem
但这是一个错误:
struct foo { int x; frIEnd int x(foo f) { return f.x; } frIEnd int y(foo f) { return x(f); } // error: invalID use of foo::x data member};
为什么不允许这两种(dis)?
解决方法 原因是在第一种情况下,友谊将函数声明注入到封闭的命名空间中,因此对x的全局范围调用只能看到一个x.在第二个示例中,x在该范围内有两个含义:全局友元函数和变量(可能会影响全局友元函数).
总结以上是内存溢出为你收集整理的c内联友元函数,与成员变量同名全部内容,希望文章能够帮你解决c内联友元函数,与成员变量同名所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)