Я знаю, что в C ++ есть два способа перегрузки. Мы можем перегрузить его внутри (например, class a
) или снаружи (например, class b
). Но вопрос в том, есть ли разница между ними во время компиляции или выполнения или нет?
class a
{
public:
int x;
a operator+(a p) // operator is overloaded inside class
{
a temp;
temp.x = x;
temp.x = p.x;
return temp;
}
};
class b
{
public:
friend b operator+(b, b);
int x;
};
b operator+(b p1, b p2) // operator is overloaded outside class
{
p1.x += p2.x;
return p1;
}