Можно ли вызвать friend
-функцию из другой, обычной функции того же класса? Если да, то как?
Вот такого эксперимента достаточно?
class Secret
{
private:
void out() const { cout << "Secret\n"; }
friend void top(const Secret& s);
};
void top(const Secret& s)
{
s.out();
};
class Public
{
public:
void secret()
{
Secret s;
// s.out(); Не скомпилируется!
top(s);
}
};
int main(int argc, const char * argv[])
{
Public p;
p.secret();
}
Или так (дружественная одна из функций чужого класса, недоступная извне вообще):
class Public
{
public:
void secret();
private:
void stop();
};
class Secret
{
private:
void out() const { cout << "Secret\n"; }
friend void Public::stop();
};
void Public::secret()
{
stop();
}
void Public::stop()
{
Secret s;
s.out(); // Работает
}
int main(int argc, const char * argv[])
{
Public p;
p.secret();
}
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть вектор длины n и строка длины m, содержащая только цифрыНеобходимо в вектор записывать числа с максимум k цифрами, содержащиеся в строке,...
Задан упроядоченый vector из double, где каждый элемент представляет собой конец отрезкаНапример, {1,3,5,6,9} -- означает, что существуют следующие отрезки:...
Недавно начал изучать перегрузку операторовПытаюсь перегрузить оператор * как пересечение множеств, но не могу понять как в данном случае...
Архивы форматов rar,zip, необходимо: распаковывать архив, получать определенный фаил из архива, получать древо каталогов и список всех файлов...