안녕하세요, 저는 현재 두 개의 클래스에서 데이터를 출력하고 싶습니다. 하나는 기본 클래스이고 하나는 파생 클래스이고, 나는 과부하로 < < 연산자를 출력하고 싶습니다. 나는이 그것이 나에게 알려줍니다 실행하려고하고 B는 그 구성원이 개인이기 때문에 의미가 범위를 벗어난 경우데이터를 접합 할 때 멤버 변수 출력하기 C++
#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 클래스에서이 문제를 해결하는 방법을 모르겠습니다. 나는 A와 B에 접근하기위한 getter 메소드를 만들려고했지만 데이터는 공백으로 나온다. 클래스 B의 멤버로 클래스 A의 객체를 추가하여 클래스 B의 멤버에 대한 액세스를 허용하려고 시도했지만 심지어 데이터가 비어있게되었습니다. 이 문제를 어떻게 해결할 수 있습니까?
왜 이미 수업에서 사용한 이름의 회원 이름을 지정하고 있습니까? – imreal
문제와 직접적인 관련이 없지만 지금 당장은 B가'A'의 중첩 된 클래스입니다 ('A'에서 파생 된 것 이외에). 그걸 원하니? – jogojapan
닉이 말한 것 외에'A '의 생성자에도 문제가있다. 'pLast'와'pFirst'의 크기가 아니라 멤버'A'의 현재 크기에 따라 공간을 할당합니다. – jogojapan