Форма не-функции для оператора вставки

Я хочу иметь перегруженный оператор put, не являющийся членом класса, который использует параметры ссылки для вывода информации из автомобильного объекта.

Вот мой код:

ostream& operator<<(ostream& os, Car& p)
{
os << "For a car make " << p.get_make() << ", " << p.get_year()<< ", the price is $" << p.get_price()  << endl;
return os;
}

Я получаю std::ostream& Car::operator<<(std::ostream&, Car&)' must take exactly one argument ошибка

Разве мне не разрешено иметь автомобиль в качестве параметра?

Благодарю.

0

Решение

Вы сказали, что хотите определить нечлен оператор. Тем не менее, вы поместили свое определение оператора в определение класса, что заставило компилятор рассматривать его как член (Реализация элемента этого оператора должна иметь только один параметр, отсюда и сообщение об ошибке). Если вы хотите определить оператор, не являющийся членом, либо переместите его за пределы определения класса, либо объявите его как friend (или оба)

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]