Описание тега friend-function
В C++ функция друга - это своего рода функция, которая является "другом" данного класса, и ему разрешен доступ к частным и защищенным данным в этом классе, что обычно невозможно, как если бы данные были общедоступными.
1
ответ
Мы можем определить функцию друга внутри класса в cpp
согласно правилу мы не можем определить функцию друга внутри класса для istream и ostream мы всегда объявляем функцию друга (так это правильно) в приведенном ниже коде Но проблема для 1-го пункта в том, как для данного кода может быть возможным успе…
03 апр '15 в 06:58
1
ответ
Функция друга шаблона шаблонного класса
Я боролся с проблемой, описанной в этом вопросе (объявление функции шаблона как друга класса шаблона), и я считаю, что 2-й ответ - это то, что я хочу сделать (объявить функцию шаблона вперед, а затем назвать специализацию другом). У меня есть вопрос…
24 ноя '09 в 00:57
2
ответа
C++ частичная шаблонная специализация оператора потока
У меня есть класс Matrix с функцией друга для использования с оператором<<. Все это прекрасно работает, но теперь я хочу частично специализировать эту функцию-друга для работы по-другому, если класс Matrix имеет Matrix в качестве параметра шаблона (…
22 окт '11 в 14:54
2
ответа
Можно ли это сделать без помощи друзей?
Можно ли преобразовать следующий код (я сохранил только соответствующую часть) для использования статической функции-члена, а не функции, свободной от друзей? Если нет, то почему нет? Я пытался преобразовать его для использования статической функции…
17 апр '14 в 19:46
1
ответ
Доступ к функции-члену из объекта внутри функции-друга
Код ниже является частью класса Distance. Перегрузка оператора является функцией-другом, объявленной как закрытый член класса Distance, а функция, которую я пытаюсь вызвать, является открытой. Эта функция не изменяет переменные-члены класса Distance…
05 окт '14 в 00:00
1
ответ
Перегрузка операторов сравнения для стеков
Мне нужна помощь: меня попросили перегрузить операторы сравнения 2 стеков. У меня есть синтаксис, я просто не могу написать определение. Поэтому, пожалуйста, помогите мне. Хотя бы одному оператору перегрузить и тогда я сделаю это для остальных. stru…
24 окт '13 в 20:08
3
ответа
Перегрузка метода оператора друга в шаблонном классе
Я пытаюсь перегрузить оператор присваивания ('=') класса шаблона, но мне нужно operator= метод, чтобы быть функцией друга. Я думаю, что это будет просто, но я делаю что-то не так, потому что код ниже вызывает ошибку компиляции: ошибка C2801: операто…
19 ноя '14 в 02:20
4
ответа
Могут ли 2 класса совместно использовать функцию друга?
Сегодня у меня есть сомнения относительно функции друга. Могут ли два класса иметь одну и ту же функцию друга? Скажи пример friend void f1(); объявлено в классе A и классе B. Возможно ли это? Если да, может ли функция f1() получить доступ к членам д…
23 авг '13 в 13:38
0
ответов
Перегрузка оператора Derference
C++ Увидев, что оператор разыменования перегружен для целей, отличных от разыменования указателя на объект, я хочу проверить, как перегрузить оператор разыменования (в основном) с целью разыменования указателя на объект. Я хочу перегрузить оператор …
12 окт '13 в 01:10
1
ответ
Создание экземпляра класса Friend в параметрах функции
Я новичок в работе с C++. Мне нужно объявить экземпляр класса в качестве параметра функции в другом классе, а экземпляр параметра объявлен как друг. Проиллюстрирую на примере. class foo(){ private: void a(){ // function definition } } class other_fo…
11 июн '15 в 04:04
1
ответ
Проблема с функцией друга
Поэтому моя программа состоит в том, что я хочу, чтобы пользователь вводил информацию о доске, чтобы все работало, кроме той части, где мне нужно, чтобы пользователь ввел значение отношения, затем добавьте еще одно число, чтобы увеличить это отношен…
29 мар '16 в 20:31
3
ответа
C++0x, пользовательские литералы с оператором друга ""()
Будет ли возможно и / или полезно определить operator "" (...) как функция друга? class Puzzle { friend Puzzle operator "" _puzzle(const char*, size_t); ... }; void solve(Puzzle); int main() { solve("oxo,xox"_puzzle); }; Я думаю о "полезном" особенн…
09 сен '11 в 07:06
2
ответа
Запрограммируйте на С ++ 2 класса и найдите максимум 2 числа.
Я хочу найти максимум 2 числа, но вместо простого метода мне нужно использовать 2 класса и функции друзей. Как это реализовать? Я использую следующий код, но код не работает. #include<iostream> using namespace std; class one { int a; public: f…
08 сен '17 в 07:19
2
ответа
Clang/ G ++ разница с функцией друга
Почему код ниже хорошо скомпилирован в g ++, но выдает ошибку на clang? #include <iostream> class Object {}; class Print { public: template <typename CharT> inline friend std::basic_ostream<CharT> & operator<<(std::basic_…
17 янв '15 в 19:42
3
ответа
Определение оператора << Внутри класса
Рассмотрим следующий код: class MyClass { template <typename Datatype> friend MyClass& operator<<(MyClass& MyClassReference, Datatype SomeData); // ... }; template <typename Datatype> MyClass& operator<<(MyClass&a…
03 мар '11 в 03:13
4
ответа
Друг против функций-членов в Перегрузке Оператора C++
Ранее я узнал о перегрузке операторов в C++ как функций-членов, а также функций-друзей класса. Хотя я знаю, как перегрузить операторы в C++, используя оба метода. Но я все еще смущен, что ** какой лучше **? Функция-член или функция-друг для перегруз…
29 мар '17 в 09:15
3
ответа
Что такое пространство имен определенной пользователем функции?
Если у меня есть функция, определенная как друг внутри класса. Каково пространство имен этой функции? namespace A{namespace B{ struct S{ friend void f(S const&){}; }; }} int main(){ A::B::S s{}; f(s); // ok ::f(s); // not ok, no f in global name…
19 июл '18 в 22:35
0
ответов
Как определить шаблонную функцию друга класса шаблона
У меня есть шаблон класса array_T который является массивом общего назначения и функцией шаблона linear search TEMPLATE.h и его объявили другом для класса arrayTemplate.h чтобы можно было использовать функцию-член класса getArraySize() и член класса…
06 янв '17 в 16:50
1
ответ
Ошибка компоновщика с шаблонной функцией-другом шаблонного класса при использовании независимого от шаблона enable_if
Я имею дело с шаблонным классом с функцией шаблонного друга template<typename T> struct X { template<typename someX> auto friend f (someX x) -> std::enable_if_t<std::is_same_v<decltype(x.hidden), int>, int>; private: T hid…
13 фев '19 в 16:30
1
ответ
Шаблонная функция друга в обычном классе
Я думаю, что мне нужна функция друга шаблона в обычном классе. Эта функция будет выполнять некоторое сложное распределение в разделяемой памяти и некоторые другие операции с оборудованием и ОС. Но я исключил все это, чтобы показать, что проблема свя…
08 янв '13 в 01:36