Почему нет доступа к приватному атрибуту?
У вас оператор является private членом класса. А надо public. О чем и говорит компилятор.
Добавлять дружественные функции/классы, довольно плохая идея с точки зрения архитектуры. 
Добавьте просто методы getCost() setCost(float) и уберите ненужных друзей.
Если по какой-то неведомой причине хотите сохранить дружественный класс, то проверьте, что у вас правильная сигнатура функции и вы сохранили файл после последних изменений.