Print-Funktion der Klasse c++

Möchte ich mal eine drucken-Funktion für eine Klasse AutoData, die Informationen über die Autos, die in es. Mit dieser Funktion drucken, würde ich am Liebsten ausdrucken-Vektor enthält viele verschiedene Objekte der Klasse. Ich habe bereits geschrieben get-Funktionen für jedes element der Objekte, aber ich bin noch ein bisschen unsicher, wie man über die über diejenigen zu schreiben, die eine Funktion zum drucken der Daten im folgenden format:

mpg:cylinders:displacement:horsepower:weight:acceleration:modelYear:origin:carName

Beispiel:

10.0:8:360.0:215.0:4615.:14.0:70:1:ford f250
10.0:8:307.0:200.0:4376.:15.0:70:1:chevy c20
11.0:8:318.0:210.0:4382.:13.5:70:1:dodge d200

Klasse ist:

#include <string>
#include <vector>
#include <iostream>

using namespace std;

class AutoData {

public:
    AutoData()
    {
        mpg = 0;
        cylinders = 0;
        displacement = 0;
        horsepower = 0;
        weight = 0;
        acceleration = 0;
        modelYear = 0;
        origin = 0;
        carName = "";
    }

    AutoData( const AutoData & rhs)
    {
        setAuto(rhs.mpg, rhs.cylinders, rhs.displacement, rhs.horsepower, rhs.weight, rhs.acceleration, rhs.modelYear, rhs.origin, rhs.carName);
    }

    void setAuto(float mp, int cy, float di, float ho, float we, float ac, int mo, int o, string ca)
    {
        mpg = mp;
        cylinders = cy;
        displacement = di;
        horsepower = ho;
        weight = we;
        acceleration = ac;
        modelYear = mo;
        origin = o;
        carName = ca;
    }

    const float & getmpg( ) const
    {
        return mpg;
    }

    const int & getcylinders( ) const
    {
        return cylinders;
    }

    const float & getdisplacement( ) const
    {
        return displacement;
    }

    const float & gethorsepower( ) const
    {
        return horsepower;
    }

    const float & getweight( ) const
    {
        return weight;
    }

    const float & getacceleration( ) const
    {
        return acceleration;
    }

    const int & getmodelYear( ) const
    {
        return modelYear;
    }

    const int & getorigin( ) const
    {
        return origin;
    }

    const string & getcarName( ) const
    {
        return carName;
    }

    bool operator == (const AutoData & rhs ) const
    {
        if( getmpg( ) == rhs.getmpg( ) )
        {
            return gethorsepower( ) == rhs.gethorsepower( );
        }

        else
        {
            return false;
        }
    }

    bool operator > ( const AutoData & rhs ) const
    {
        if( rhs.getmpg( ) > getmpg( ) )
        {
            return true;
        }

        else if( getmpg( ) == rhs.getmpg( ) )
        {
            if( rhs.gethorsepower( ) > gethorsepower( ) )
            {
                return true;
            }
        }

        else
        {
            return false;
        }
    }


private:
    float mpg;
    int cylinders;
    float displacement;
    float horsepower;
    float weight;
    float acceleration;
    int modelYear;
    int origin;
    string carName;
};

Jede Hilfe/Rat, den jemand bereitstellen können, wäre sehr dankbar!! Dank

  • wenn Sie drucken möchten, auf Konsole einfach cout << mpg << ":" << Zylinder << ":" etc - wenn Sie möchten, speichern Sie in einem string verwenden Sie ein stringstream.
  • aber wie kann ich drucken Sie eine gesamte Vektor für diese? so, dass seine mpg1:cylinders1:etc... mpg2:cylinders2:etc...
  • Nur die Iteration über den Vektor und fügen Sie Zeilenumbrüche zwischen den Einträgen
  • was ich sagte, Sie würden in Ihrer eigenen Methode, dann einfach Durchlaufen und jeden Vektor mit einem ranged based for-Schleife, wie Sie normalerweise würde.
InformationsquelleAutor Pseudo Sudo | 2014-04-23
Schreibe einen Kommentar