现在的位置: 首页 > 综合 > 正文

VC6.0中友元函数无法访问类私有成员的解决办法(VC6.0的bug)

2013年06月08日 ⁄ 综合 ⁄ 共 1935字 ⁄ 字号 评论关闭

举个例子: 


这些代码在VC6.0中不能被编译通过:提示不能访问私有成员,没有这个访问权限

改成这样就可以了,代码如下: 

原因:

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

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

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

例如:

含有#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; 等等,需要什么即可通过using声明什么.

 

下面给出流浪给的解决办法:

//方法一:

//提前声明

//方法二:

//不用命名空间 或者 像晨雨那样写

#include<iostream.h>

 

 

//方法三:

//方法四:打SP6补丁,貌似不好使。。。(呵呵,是貌似也没用)

 

//方法五:换别的对标准C++支持好的编译器,如DEV C++/。。。(呵呵)

抱歉!评论已关闭.