1

問題は解決しました、あなたの助けに感謝します!


私は理解できないような問題に遭遇しました。

そのオブジェクトのメンバーデータを出力できるようにするために、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
4

1 に答える 1

3

あなたoperator<<が定義したoperator<<ものとあなたが友達にしたものは同じ名前ではありません。名前空間を使用していますか?

于 2012-06-08T19:20:47.100 に答える