こんにちは私は現在、2つの別々のクラスからデータを出力したいという問題に直面しています。1つは基本クラスで、もう1つは派生クラスです。<<演算子をオーバーロードしてすべてのデータを一度に出力したいのですが、問題があるようです。だから、私はこのようなものを持っています:
#include <iostream>
using namespace std;
class A
{
char* A;
char* B;
public:
A() {A = ' '; B = ' ';}
A(char* pLast, char* pFirst)
{
A = new char [strlen(pLast) + 1];
B = new char [strlen(pFirst) + 1];
strcpy(A,pLast);
strcpy(B,pFirst);
};
}
class C:public A
{
int X;
char Y;
int Z;
public:
C(char* A, char* B, int X, char Y, int Z)
:A(A,B)
{
//do stuff here
}
friend std::ostream& operator<<(std::ostream& out, const C& outPut)
{
out << outPut.A << "," << outPut.B << "," <<outPut.X<< "," << outPut.Y << "," << outPut.Z << endl;
return out;
}
};
これを実行しようとすると、AとBが範囲外であることがわかります。これは、これらのメンバーがクラスAでプライベートであるため、これを回避する方法がわかりません。AとBにアクセスするためのgetterメソッドを作成しようとしましたが、データが空白で表示されます。クラスAのオブジェクトをクラスBのメンバーとして追加して、クラスBのメンバーへのアクセスを許可しようとしましたが、それでもデータは空白になります。この問題を回避するにはどうすればよいですか?