您好我目前面临一个问题,我想从 2 个单独的类输出数据,一个是基类,一个是派生类,我想重载 << 运算符以一次输出所有数据,但似乎有麻烦所以,我有这样的事情:
#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 类中是私有的,我不知道如何解决这个问题。我尝试创建 getter 方法来访问 A 和 B,但数据显示为空白。我什至尝试将 A 类的对象添加为 B 类的成员,以尝试允许访问 B 类中的成员,但数据仍然为空白。我该如何解决这个问题?