用VC6.0遇到的一个问题
我的电脑装vs2008总是报错,不得已装了个VC6 sp6暂时先用用,发现使用重载输入输出运算符时有问题
demo3.h:
#include <iostream.h>
class demo3
{
public:
demo3();
virtual ~demo3();
friend ostream& operator << (ostream& out,const demo3& d);
friend istream& operator >> (istream& in,demo3& d);
private:
int x;
};
class demo3
{
public:
demo3();
virtual ~demo3();
friend ostream& operator << (ostream& out,const demo3& d);
friend istream& operator >> (istream& in,demo3& d);
private:
int x;
};
#include "stdafx.h"
#include "demo3.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
demo3::demo3()
{
}
demo3::~demo3()
{
}
ostream& operator << (ostream& out,const demo3& d)
{
out<<d.x<<endl;
return out;
}
istream& operator >> (istream& in,demo3& d)
{
return in;
}
编译后报错:
error C2248: 'x' : cannot access private member declared in class 'demo3'
查了下网上的资料,说是vc6的bug,而在vc8中就没问题,暂时的解决办法是将#include<iostream>改为#include<iostream.h>
作者:洞庭散人
出处:http://phinecos.cnblogs.com/
本博客遵从Creative Commons Attribution 3.0 License,若用于非商业目的,您可以自由转载,但请保留原作者信息和文章链接URL。
posted on 2008-07-21 18:35 Phinecos(洞庭散人) 阅读(723) 评论(5) 编辑 收藏 举报