从成员函数访问成员指针

时间:2019-11-17 14:58:18

标签: c++ pointers member

我有2个类(PilotCar),并在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(),似乎没有任何作用。

0 个答案:

没有答案