Pull to refresh

C++ и дружба

Reading time1 min
Views1.8K
Открыл для себя забавный факт: оказывается, у классов в C++ могут быть воображаемые друзья. Пример:

class Fred { <br>
    friend class Joe; <br>
public: <br>
    void dance() { <br>
        //какой-то код <br>
    } <br>
}; <br>
<br>
int main() { <br>
    Fred guy; <br>
    guy.dance(); <br>
    return 0; <br>
} <br>
//конец программы <br>


Заметьте, что в программе нет объявления класса Joe, однако программа компилируется без ошибок (и без предупреждений). То есть Джо не существует, его можно назвать воображаемым другом Фреда. Такое возможно, поскольку отношение дружбы влияет только на компиляцию класса, который объявлен другом. А класс, объявивший кого-то своим другом, будет скомпилирован одинаково независимо от того, что представляют собой его друзья и существуют ли они.
Tags:
Hubs:
Total votes 29: ↑19 and ↓10+9
Comments10

Articles