Форум программистов, компьютерный форум, киберфорум
C++/CLI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
430 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,759
Записей в блоге: 14

Замена friend-операторов для ref class

27.08.2018, 10:26. Показов 2762. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если в ref-классе написать friend operator+(double _Left, MyClass ^_Right), высвечивается ошибка компиляции. Кто знает работающую альтернативу этой записи?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.08.2018, 10:26
Ответы с готовыми решениями:

В чем отличие ref class от value class, где какой следует использовать?
САБЖ, мало по мало изучаю C++/CLI.. В голове каша, хотелось бы как то фундаментально осмыслить и запомнить в каких случаях нужно...

Перегрузка операторов, friend или нет friend?
Всем здравствуйте. Есть такой вопрос: при перегрузке операторов в классе(пусть будут + и = (вообще неважно, за исключением потока)) как и...

Java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
Здравствуйте. При динамической загрузке кода столкнулся с такой ошибкой: E/AndroidRuntime(27808): Caused by:...

6
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
27.08.2018, 10:56
Думаю, вам в C++ /CLI
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
430 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,759
Записей в блоге: 14
27.08.2018, 10:58  [ТС]
Серьезной помощи не будет?
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
27.08.2018, 11:04
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Серьезной помощи не будет?
А вы вопрос серьезно задайте сначала.
Пример, покажите, который не компилируется. Ошибку компиляции покажите.

Да и правильно вам написали: тут раздел по стандартному С++, а наречие, на котором вы пишете, называется C++\CLI - и форум для него в другом разделе.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
430 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,759
Записей в блоге: 14
27.08.2018, 11:13  [ТС]
Код:
C++
1
2
3
4
5
6
public ref class MyClass {
    //В этом примере ==, но и с + то же самое
    bool operator==(MyClass ^_Ptr) {}//Тут работает
    bool operator==(double _Ptr) {}//Тут тоже
    friend bool operator==(double _Left, MyClass ^_Right) {}//А тут ошибка
}
Ошибка: error C3809: MyClass: тип управляемый не может иметь дружественные функции, классы и интерфейсы
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
27.08.2018, 11:34
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
MyClass: тип управляемый не может иметь дружественные функции, классы и интерфейсы
Ближайшая альтернатива friend - это использование спецификатора доступа internal.
https://msdn.microsoft.com/ru-... visibility

Хотя здесь проще всего вынести функцию из класса, а для ее реализации доступа к закрытым данным использовать геттеры.

Добавлено через 8 минут
Примерчик:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
ref class MyClass {
    
public:
    MyClass(double v) : m_val(v) {}
    
    bool operator==(MyClass ^ ptr) {
        return m_val == ptr->m_val;
    }
    bool operator==(double v) {
        return m_val == v;
    }
   
internal:
    double get()
    {
        return m_val;
    }
    
private:
    double m_val;
};
 
inline
bool operator==(double left, MyClass ^ right)
{
    return right->get() == left;
}
 
int main() 
{  
   MyClass ^ b = gcnew MyClass(2.0); 
    
   if(2.0 == b)
   {
       Console::WriteLine("Equal"); 
   }
}
Онлайн демо: http://rextester.com/GYSK75705
1
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
430 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,759
Записей в блоге: 14
27.08.2018, 11:46  [ТС]
DrOffset, спасибо, попробую сделать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.08.2018, 11:46
Помогаю со студенческими работами здесь

friend class
#include <iostream> using namespace std; #include <string> using std::string; class two; class one { friend...

friend class в C#
До этого изучал С++, там в классах есть такая штука как friend class т.е. есть класс и что бы к закрытым (private) членам этого класса мог...

Перегрузка операторов как friend
Доброго времени суток, почему перегрузка некоторых операторов производиться только через friend? Например +=, -=, *=, /=?

Наследование ref class -ов
Напишите пожалуйста какой-то пример с наследование public ref классов.В инете нашёл наследование обычных классов, перед ними дописую...

Дружественные функции, реализация и вызов: Friend used outside of class
Подскажите, пожалуйста, как превратить этот метод вычисления боковой поверхности в дружественную функцию: long double...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru