В C ++ я знаю, что есть два способа перегрузки.Мы можем перегрузить его внутри (например, класс a
) или снаружи (например, класс 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;
}