| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Перегрузка |
| Автор: FTK 29.6.2005, 15:52 | ||
| Привет! Сейчас пытаюсь написать простенькую прогу, и в процессе возник такой вопрос: Можно ли вместо
Сделать не friend - функцию, а обычную. Да, и еще: что лучше использовать конструктор копирования или операцию присваивания? Заранее спасибо за ответы =) |
| Автор: Дрон 29.6.2005, 15:54 | ||||
И то, и то. Это разные методы, применяющиеся в разных ситуациях.
Не знаю, наверно можно. А самому сложно проверить? |
| Автор: FTK 29.6.2005, 16:06 |
| Дрон У меня компилятор накрылся, что-то не работает, поэтому я так, абстрактно пытаюсь придумать... |
| Автор: Earnest 29.6.2005, 16:23 |
| Если в классе A достаточно открытого интерфейса для вывода в поток, то можно обойтись без friend, иначе - нельзя. |
| Автор: FTK 29.6.2005, 16:27 | ||
| А... А что значит
|
| Автор: Earnest 29.6.2005, 16:38 | ||||
| Открытый - значит public. Например:
Тогда функция
вполне может вывести значение переменной m_xxx в поток и не будучи friend. А если нет такой функции GetXXX и переменная m_xxx не public, то для вывода ее значения придется оператор << объявлять как friend. |
| Автор: ManiaK 29.6.2005, 16:49 | ||
...потому как нам не дадут этот самый m_xxx - доступа нет! Friend для того и нужен - позволяет работать с private/protected методами и переменными класса. |