我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:双彩网 > 元编译程序 >

求解:c++程序的友元函数重载输出流运算符VC60编译错误

归档日期:06-15       文本归类:元编译程序      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  不好意思,我刚才少加了一个,,现在可以了,不过,还是想请问你为什么要这样改呢?这个重载运算符是书上照搬的。

  呵呵,我也没想明白,我觉得是命名空间的问题。C++primer上也是加上std的。全局命名空间也有类ostream,std命名空间也有。但我不知道为什么声明了命名空间std后,却提示不能访问私有成员,而且主函数里提示使用有歧义

  这样可以解释只在vector.h加上using namespace std;后使用有歧义,且不能访问私有成员的问题了,这是因为,你在cpp里重载的不是你在vector.h里定义为友元的函数,虽然他们名字一样,但不是定义在同一个命名空间下的函数。

  你可以重新定义一个友元函数,函数名改成别的,这样加上using namespace std;后就不会有不能访问私有成员的错误了

  奇怪了,我复制了你的代码在一个cpp可以正常运行,仔细一看,头文件里面已经使用了ostream,但是头文件却没有申明使用了std,他就找不到了你好,谢谢你的回答。我在头文件里加上申明使用std后,还是会提示无法访问私有成员,但是友元函数不是可以访问么?

  你好,谢谢你的回答。加上这句后会error提示无法访问私有成员。但既然是友元函数为什么不能访问呢?

本文链接:http://rhone-credit.com/yuanbianyichengxu/101.html