Описание тега friend
В объектно-ориентированном программировании друг относится к методу или классу, который имеет доступ к некоторым закрытым аспектам определенного класса.
2
ответа
C++ Поддерживающий добавление boost::ptr_map / boost::checked_delete завершается неудачно
Я хочу использовать boost::ptr_map внутри определенного класса, который хранит свои экземпляры. Однако, пожалуйста, рассмотрите следующий пример: #include <boost/checked_delete.hpp> #include <boost/ptr_container/ptr_map.hpp> class foo { …
15 июн '11 в 07:10
3
ответа
Оператор << для вложенного класса
Я пытаюсь перегрузить оператор << для вложенного класса ArticleIterator. // ... class ArticleContainer { public: class ArticleIterator { // ... friend ostream& operator<<(ostream& out, const ArticleIterator& artit); }; // ... }; Ес…
25 окт '10 в 14:13
1
ответ
Указатель на функцию как функция друга
Я использую указатели на функции в классе, чтобы обеспечить расширяемую функциональность во время выполнения. У меня есть typedef'd подпись функции: typedef f32 generate_height(f32 x, f32 y); Теперь в классе я использую указатели на функции: class T…
06 авг '18 в 09:08
2
ответа
C++ - ошибка: "функция" не была объявлена в этой области
У меня есть следующая проблема: ошибка: 'kleiner' не был объявлен в этой области. Мой профессор сказал мне, что мой код просто отлично работает для него. Все каталоги включены в параметры bulid (я использую Code::Blocks). Может кто-нибудь сказать, п…
25 июн '14 в 19:21
1
ответ
C++ Friend Функция не имеет доступа к закрытым членам
Поэтому я пытаюсь сделать игру в шахматы (немного сложным для меня), и я являюсь пнем для этой части.. Итак, я сделал объект-кусок, и идея в том, что в основном игровом коде у меня есть массив частей, и я передаю адрес массива функции "InitilisePiec…
14 окт '15 в 11:28
3
ответа
Создание неопределенного класса в качестве друга и определение его позже
Создание неизвестного друга template<typename T> class List { protected: class a { int x; int y; private: friend class b; // <------------ Why this is not an error? }; template <typename U > class b { //If that is not a error this sho…
25 ноя '10 в 06:43
1
ответ
Использование безымянного пространства имен для переопределения класса друга в API и доступа к закрытым членам?
Я пытаюсь получить доступ к некоторым закрытым членам класса, который является частью API, который я не могу изменить. Листинг 1: api.h namespace api { class Bar; class Foo { public: const int& getSecret() const { return secretValue; } private: …
08 ноя '14 в 08:31
4
ответа
Должна ли функция друга быть в одном файле?
Я на самом деле тестирую файл, и у меня возникает ситуация, когда мне нужно получить доступ к некоторым защищенным членам класса из main.cpp. Я пытался добавить, main() как друг, не получилось и узнал, что это не будет работать, поэтому я переместил…
09 апр '12 в 00:33
2
ответа
Друг не может получить доступ к личным переменным?
class LongInt { friend ostream & operator <<(ostream & os, const LongInt & integer); ... } ostream & operator <<(ostream & os, LontInt & container) { os << container.number.size(); //error here return os; } …
28 фев '14 в 04:13
1
ответ
Оборачивание обработчиков ресурсов с помощью bidi
Как я могу использовать друга и биди для переноса обработчиков ресурсов? Мне удалось получить oAuth для проверки подлинности маршрута: (defn auth-handler [request] (friend/authorize #{::user} {:status 200 :body "a secret"})) (def routes ["/" {true a…
08 мар '16 в 18:20
2
ответа
Реляционные операторы на шаблоне класса
Это не будет работать template<typename T> struct foo { T t; }; bool operator==(const foo &lhs, const foo &rhs) { //error, requires template arg return lhs.t == rhs.t; } Это правильный способ решить эту проблему? Я хочу определить такж…
10 июн '13 в 10:11
1
ответ
Создание функции друга для доступа к закрытым переменным из двух классов
Проблема заключалась в том, чтобы получить доступ к закрытым переменным для вывода из двух разных классов, добавив функцию, являющуюся другом обоих классов. class Salesperson; class Sale { private: string date; double total; int SalespersonIdNum; pu…
24 май '18 в 20:05
2
ответа
Друг вызывает виртуальный приватный метод - что должно произойти
У меня была ситуация, когда я хотел, чтобы класс друга вызывал закрытый метод, затем я хотел сделать этот метод виртуальным, чтобы вместо него вызывался метод класса - тогда я, конечно, понял, что дружба не наследуется. Таким образом, у нас есть сит…
20 ноя '13 в 01:38
3
ответа
Дружба не передается по наследству - какие есть альтернативы?
Я написал / пишу фрагмент кода для анализа физики, первоначально для себя, который теперь, надеюсь, будет использоваться и расширяться небольшой группой физиков. Никто из нас не является гуру C++. Я собрал небольшую структуру, которая абстрагирует д…
05 июл '11 в 16:41
2
ответа
Эхо для печати по одному значению за раз
Я создал систему, в которой пользователь регистрируется на моем сайте, его данные заносятся в мою таблицу пользователей (SQL). Затем пользователь может искать других пользователей по имени пользователя. Затем они могут отправить пользователю запрос …
20 янв '13 в 16:39
1
ответ
Вызов функции шаблона друга без определения параметра в шаблоне класса
Я экспериментировал с вызовом шаблонной функции друга без параметра, который определен в шаблоне класса. Я не нашел решения именно для этого случая и решил свою проблему другим путем, но во время своих экспериментов я неожиданно нашел какой-то интер…
26 ноя '14 в 22:25
3
ответа
Параметр шаблона в друзья
В C++03 следующее недопустимо, хотя некоторые компиляторы поддерживают это. template <class T> class X { friend T; }; Это было узаконено в C++11? (Извините, я не успел прочитать черновик, просто надеясь, что кто-то это знает)
28 июн '11 в 16:44
2
ответа
Объявление друга для одного члена вместо целого класса?
Обычно в C++, когда класс A объявляет дружбу с классом B, класс B имеет полный доступ к закрытым членам класса A. Что мне нужно сделать, это позволить классу B получить доступ только к одному частному члену класса A и ничего больше. Есть ли способ д…
11 фев '13 в 22:33
1
ответ
Объявить функцию C другом класса и вернуть C перечислитель
Это очень похоже на этот вопрос, однако функция, которую я пытаюсь сделать другом, возвращает C перечислитель. Я не могу понять правильный синтаксис: #include <iostream> extern "C" { enum X {ONE}; int foo(); X bar(); } namespace a { class A { …
15 май '15 в 10:35
1
ответ
Класс друга по пространствам имен и различным файлам.H
Я пытаюсь сделать следующую компиляцию под VS 2008 SP1 C++ проект, но friend class заявление не имеет никакого эффекта. (См. Сообщение об ошибке в последнем фрагменте кода.) Что я делаю не так с friend определение? // EncryptionTypes.h file #pragma …
11 июл '17 в 23:40