Chcę napisać funkcję drukowania dla klasy AutoData, która zawiera informacje o samochodach w niej zawartych. Przy tej funkcji drukowania najlepiej byłoby wydrukować wektor zawierający wiele różnych obiektów klasy. Pisałem już funkcje dostać do każdego elementu przedmiotów, ale nadal jestem trochę niepewny, jak go o użyciu tych napisać funkcję, aby wydrukować dane w następującym formacie:Funkcja drukowania dla klasy C++
mpg:cylinders:displacement:horsepower:weight:acceleration:modelYear:origin:carName
Na przykład :
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
Klasa jest:
#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;
};
Każda pomoc/wskazówki ktoś może dostarczyć byłby bardzo cenione !! Dzięki
jeśli chcesz drukować do konsoli tylko cout << mpg << ":" << << "cylindry" etc - jeśli chcesz przechowywać w ciągu znaków, użyj strumienia stringów. – Mike
, ale w jaki sposób wydrukować cały ich wektor? tak, że jego mpg1: cylinders1: etc ... mpg2: cylinders2: etc ... –
Wystarczy iterować nad wektorem i dodać znaki nowej linii między pozycjami – stefaanv