Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
class C { };
int operator+(int a, const C &c) { return 0; }
Это также позволяет выполнять неявные преобразования левого операнда. Скажем иначе это бы не работало:std::string s;
"something" + s;
std::string("something").toupper() хочется пойти и посмотреть, когда это добавили toupper для std::string, а потом сидеть удивляться, почему его в документации нет, а код работает, найти где же он действительно объявлен тоже будет не очень просто.Изначально, дружественными (friend) могли быть только классы. Общей идеей концепции является помещение ряда сущностей в один домен безопасности, члены которого равны между собой в правах (а не нарушение инкапсуляции, как многие считают).
Дизайн и эволюция языка С++: выдержки