friend specifier
Материал из cppreference.com
![]() |
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google.
Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке. Щёлкните здесь, чтобы увидеть английскую версию этой страницы |
[править] Описание
Ключевое слово friend используется для предоставления доступа к членам класса извне. Предположим, что у вас есть класс. Вы можете получить доступ к private или protected членам только из того же класса или производных классов соответственно. С помощью ключевого слова friend вы можете предоставить доступ к ним. Наиболее распространённым применением friend является оператор >> и << оператор.
Оригинал:
The friend keyword is used to grant access to class members from outside of the class. For example, suppose your class has private or protected members. You can access these members only from the same class or derived classes respectively. By using the friend keyword you grant access to the private and protected members of your class to the friend function or a friend class. Some of the more common uses of friend are the operator>> and operator<< functions and the swap function.
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
[править] Пример использования
Запустить этот код
#include <iostream> #include <sstream> class MyClass { int i; friend std::ostream& operator<<(std::ostream& out, const MyClass& o); friend std::istream& operator>>(std::istream& in, MyClass& o); public: MyClass(int i = 0) : i(i) {} }; std::ostream& operator<<(std::ostream& out, const MyClass& mc) { return out << mc.i; } std::istream& operator>>(std::istream& in, MyClass& mc) { return in >> mc.i; } int main() { MyClass mc(7); std::cout << mc << '\n'; std::istringstream("100") >> mc; std::cout << mc << '\n'; }
Вывод:
7 100