Ich möchte eine Druckfunktion für eine Klasse AutoData schreiben, die Informationen über Autos enthält. Mit dieser Druckfunktion möchte ich idealerweise einen Vektor ausgeben, der viele verschiedene Klassenobjekte enthält. Ich habe bereits get-Funktionen für jedes Element der Objekte geschrieben, aber ich bin immer noch ein bisschen unsicher, wie gehen diejenigen über die Verwendung eine Funktion zu schreiben, um die Daten in folgendem Format auszudrucken:Druckfunktion für Klasse C++
mpg:cylinders:displacement:horsepower:weight:acceleration:modelYear:origin:carName
Zum 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
Die 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 jemand Hilfe/Beratung kann würde bieten sehr geschätzt !! Dank
wenn Sie nur wollen cout << mpg auf die Konsole drucken << ":" << Zylinder << ":" etc - Wenn Sie in einer Zeichenfolge speichern möchten, verwenden Sie einen Stringstream. – Mike
aber wie würde ich einen ganzen Vektor von diesen ausdrucken? mpg1: cylinders1: etc ... mpg2: cylinders2: etc ... –
Iterieren Sie einfach über den Vektor und fügen Sie Zeilenumbrüche zwischen den Einträgen – stefaanv