问题解决了,谢谢大家的帮助!
我遇到了一个我似乎无法弄清楚的问题。
我试图将ostream操作符重载为友元函数,以便能够打印出该对象的成员数据,而我似乎无法使其工作。
这是我到目前为止所得到的:
.h文件:
Class TestIt:
{
public:
TestIt();
TestIt(int a, b);
friend ostream& operator <<(ostream& outputStream, const TestIt& a);
Private:
int NUMBER1;
int NUMBER2;
};
.cpp文件:
ostream& operator <<(ostream& outputStream, const TestIt& a)
{
outputStream << a.NUMBER1 << " " << a.NUMBER2;
return(outputStream);
}
我要做的是,传入ostream中的对象,然后输出其成员数据。 我收到的错误是
“TestIt.h中声明的成员TestIt :: NUMBER1无法访问。
我的其他会员数据也存在同样的错误。
为什么会这样?
感谢您的帮助。
这是我刚写的一个完整的程序,给我同样的错误:
TestClass.cpp
#include "TestClass.h"
#include <iostream>
using namespace std;
TestClass::TestClass(int a, int b)
{
age = a;
whole = b;
}
int TestClass::GetAge() const
{
return(age);
}
ostream& operator <<(ostream& outputStream, const TestClass& t1)
{
t1.whole;
t1.age;
return(outputStream);
}
TestClass.h
#ifndef TestClass_H
#define TestClass_H
class TestClass
{
public:
TestClass(int a, int b);
int GetAge() const;
friend ostream& operator <<(ostream& outputStream, const TestClass& t1);
private:
int whole;
int age;
#endif
答案 0 :(得分:3)
您定义的operator<<
和您已经定义的operator<<
名称不同。你在使用命名空间吗?