Вопрос: перегрузка оператора потокового вывода. С++. ООП.

  • Автор темы TranE91
  • Дата начала
T

TranE91

#1
Кароче, трабла такая, имеется базовый класс, от него два производных, от этих двух имеется еще один производный. для наглядности диаграмма классов.
Трабла нелепа, но и не понятна. При перегрузке оператора вывода(<<) выскакивает "неоднозначный уровень доступа" к данным первого САМОГО базового класса. Как же все-таки толково правильно сделать эту перегрузку не используя воидовский вывод того класса в перегрузке?

C++:
ostream &operator<<(ostream& zout,const saller& KK)
{
zout<<KK.name<<"\t"<<KK.surname<<"\t"<<KK.patronymic<<"\t"<<KK.year<<"\t"<<KK.license_number<<"\t"<<KK.adress<<"\t"<<KK.passport_number<<endl;
for(int i=0;i<20;i++)
zout<<KK.departations[i][0].land<<"\t"<<KK.departations[i][0].year<<"\t"<<KK.departations[i][1].land<<"\t"<<KK.departations[i][1].year<<endl;
zout<<KK.tov<<"\t"<<KK.adress[0];
for(int i=1;i<5;i++)
zout<<KK.adress[i];
return zout;
}
 

Вложения

DarkKnight

Well-known member
01.08.2010
653
0
#2
Выкинь пожалуйста код определения всех классов...
Интерисует только само определение, без функций...
В диаграмме сложно уловить, но думаю проблема у тебя как раз с обозначением видимости (доступности : private, protect, public)...