Today I've found funny code somewhere in the big project. It looks like the following:
class T
{
public:
// ... some declarations
bool operator ==( T& t )
{
bool b = false;
if ( t == *this ) b = true;
return b;
}
}
Mostly C++ programming tips, but sometimes here one can find my mind dump...
Today I've found funny code somewhere in the big project. It looks like the following:
class T
{
public:
// ... some declarations
bool operator ==( T& t )
{
bool b = false;
if ( t == *this ) b = true;
return b;
}
}
2 коммент.:
куда забавней
Если стоит 3, то и пусть стоит:
if ($pay == 3){
$pay = 3;
}else{
$pay = $pay;
}
Этому коду до говнокода, как мне пешком до Майами (я счас в Харькове)
Допустим этот класс абстрактный и в нем есть другие операторы сравнения, операндами которых выступают классы наследники.
Вызывая оператор сравнения для базового класса мы не можем выбрать из кучи операторов сравнения нужный так как имеем только указатели на базовый класс. Этот оператор сравнения является общим, вызывая его мы определяем к какому классу относится this, и перевызывая оператор мы меняе местами неизвестный операнд с известным (это в строке c if ( t == *this ) ) так как класс скорее всего абстрактный то вызовется уже другой оператор сравнения...
Отправить комментарий