friend in operator == или << когда мне его использовать?

Я чувствую, что немного пробел в моем понимании друга ключевое слово.

У меня есть класс, презентация . Я использую его в своем коде для двух переменных, present1 и present2 , которые я сравниваю с == :

if(present1==present2)

Вот как я определил оператор == презентации класса ):

bool operator==(const presentation& p) const;

Однако мне сказали, что лучше использовать friend и определять его вне класса:

friend bool operator==(presentation&, presentation&);

Почему? В чем разница между ними?

14
задан Fund Monica's Lawsuit 23 February 2016 в 14:18
поделиться