Похоже Coord(a)
не работает, а значения для lon
и lat
являются 00.0000
и 00.0000
, те из конструктора по умолчанию. Что мне делать? У меня проблема с синтаксисом? Разве это не in >> Coord(a)
читать lon
и lat
от базового класса?Прочитайте атрибут базового класса с использованием «IStream» из производного класса
//base class
class Coord {
private:
double lon;
double lat;
Coord() { lon = 00.000000000000000; lat = 00.000000000000000; }
//.....
//.....
//.....
friend istream& operator>>(istream& in, Coord& temp)
{
cout << "Longitude is : "; in >> temp.lon;
cout << "Latitude is : "; in >> temp.lat;
return in;
}
};
//derived class
class Location : public Coord {
private:
char model[6];
double time;
int speed;
//.....
//.....
//.....
friend istream& operator>>(istream& in, Location& a)
{
cout << "Model is : "; in >> a.model;
cout << "Time is : "; in >> a.time;
cout << "Speed is : "; in >> a.speed;
cout << "Coordinates : " << endl; in >> Coord(a);
return in;
}
};
void main()
{
Location loc;
cin>>loc; cout<<loc;
}
'Координаты (a)' создает временное? – LogicStuff
Ваш минимальный пример даже не близок к компиляции. –