Есть базовый класс Computer и производный класс Laptop:
class Computer
{
private:
string model;
};
class Laptop : Computer
{
private:
string typeOfLaptop;
};
Каким образом следует перегрузить операторы ввода/вывода? Я могу сделать это задав параметры базового класса типом protected и реализовать дружественные функции.
class Computer
{
protected:
string model;
};
class Laptop : public Computer
{
private:
string typeOfLaptop;
public:
friend istream& operator>>(istream& in, Laptop& obj);
friend ostream& operator<<(ostream& os, const Laptop& obj);
};
istream& operator>>(istream& in, Laptop& obj)
{
in >> obj.model >> obj.typeOfLaptop;
return in;
}
ostream& operator<<(ostream& os, const Laptop& obj)
{
return os << obj.model << " " << obj.typeOfLaptop;
}
Но я думаю, что это не совсем верно. Может быть есть способ получше?
Сборка персонального компьютера от Artline: умный выбор для современных пользователей