我有2个类(Pilot
和Car
),并在Pilot *myPilot
类内创建了一个指针Car
:
class Pilot
{
private:
string nome;
bool estado; // dentro (1) ou fora (0) do carro
string tipo;
bool associado; // 1 se tiver piloto associado, 0 caso contrario
public:
Pilot(string nome, string tipo);
~Pilot();
// funçoes set
void setEstado(bool estado);
void setAssociado(bool valor);
// funçoes get
string getAsString() const;
string getName() const;
bool getEstado() const;
string getTipo() const;
bool getAssociado() const;
};
class Car{
private:
string marca;
string modelo;
char idCarro;
int energiaMaxima;
int energia;
bool estado; // parado (0) ou em movimento (1)
int velocMax;
bool associado; // 1 se tiver piloto associado, 0 caso contrario
Pilot* myPilot= nullptr;
public:
// construtor
Car(string marca, int energiaInicial, int energiaMaxima, int velocMax, string model = "modelo base");
~Car();
// funçoes set
void setPiloto(Pilot* pilot);
void setAssociado(bool valor);
// funçoes get
string getMarca() const;
string getModelo() const;
char getID() const;
bool getAssociado() const;
string getAsString() const;
};
但是问题是,我无法从成员函数getAsString()
访问其他成员函数。
示例:
ostringstream os;
os << "\nMARCA: " << marca <<
"\nMODELO: " << modelo <<
"\nID: " << idCarro <<
"\nVELOCIDADE MAXIMA: " << velocMax << " km/h" <<
"\nENERGIA INICIAL: " << energia << " mAh" <<
"\nENERGIA MAXIMA: " << energiaMaxima << " mAh";
if (associado != 0)
os << "\nPILOTO ASSOCIADO: " << myPilot->getName() << endl;
else
os << "\n(Sem piloto associado.)\n";
return os.str();
}
如果我尝试做myPilot->getName()
,似乎没有任何作用。