vc6.0 中关于友元的一个问题

c++中友元函数无法访问私有成员的问题。

近来学习c++的类时,用vc6.0编译一个测试类的程序时,总是出现一个错误,但在其他的编译器上却可以编译通过。现在把这个错误记录下来。

在vc6.0上总是报错:'all_cents' : cannot access private member declared in class 'Money';

只有按下面这样改才可以运行。希望大家可以方便查找错误

将using namespace std;改为

using std::cin;
using std::endl; using std::cout;
using std::ostream;
using std::istream;
using std::ostream;

原因:

这据说是VC的一个经典BUG。和namespace也有关.

只要含有using namespace std; 就会提示友员函数没有访问私有成员的权限。

解决方法:去掉using namespace std;换成更小的名字空间。

以下内容转自:http://hi.baidu.com/zgjxwl/blog/item/f0382a6e4ea08ddc80cb4a3d.html


例如:
含有#include <string>就要加上using std::string
含有#include <fstream>就要加上using std::fstream
含有#include <iostream>就要加上using std::cin; using std::cout; using std::ostream; using std::istream; using std::endl; 等等,需要什么即可包含什么.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值