Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376

Изменение значения private поля в c++

04.11.2012, 21:18. Показов 2529. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При желании такое можно провернуть в c# (ну только естественно не на уровне объекта). Поэтому и возник такой вопрос. Ощущение что подобное возможно только в дин. языках. В общем быстрый гуглинг ничего не дал.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.11.2012, 21:18
Ответы с готовыми решениями:

Добавление кнопки "Обзор" // Изменение свойств поля,изменение значения по 2му шелчку
Доброго времени суток! Есть форма для будущего заполнения пустой базы данных для учета производства в цифровой типографии (как пример)...

Изменение значения поля
Как посредством JS внести в поле на веб-странице значение? Полей много, а значение одинаковое, поле называется "Доступное...

Изменение значения поля
Добрый день. Такая тема: есть у меня датасет, прицепил к нему грид, определил поля, в одном из них установил значение свойства editor для...

9
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
05.11.2012, 01:06
http://liveworkspace.org/code/... 0a2e329dc9
1
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
09.11.2012, 19:07
Serg046, Первое - C# не является динамическим языком.
Второе - получить доступ к private данным, чтобы это работало в любом случае невозможно, по крайней мере на уровне С++. Можно написать #define private public - грязный хак. Можно сделать как написал Jupiter - не сработает, если в классе есть виртуальные функции. Можно специализировать шаблонную функцию класса для другого типа - далеко не во всех классах есть шаблонные функции.
0
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
09.11.2012, 21:23  [ТС]
Цитата Сообщение от ForEveR Посмотреть сообщение
Первое - C# не является динамическим языком.
Не правильно выразился, суть то ясна...
Цитата Сообщение от ForEveR Посмотреть сообщение
Второе - получить доступ к private данным, чтобы это работало в любом случае невозможно, по крайней мере на уровне С++.
Вот именно, нет. В c# такое сделать можно, но только не на уровне объекта. Если нужно пример могу найти.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
10.11.2012, 16:49
Serg046, Нужно. Чтобы работало в ЛЮБОМ случае. Включая виртуальные функции. Ну и без использования рефлексии само собой. Ну и естественно на уровне C#.

Добавлено через 33 минуты
С рефлексией понятное дело возможно многое.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    class New
    {
        private int value;
        public int Value { get { return value; } }
    }
    class Program
    {
        static void Main(string[] args)
        {
            New val = new New();
            var type = typeof(New);
            var field = type.GetField("value", BindingFlags.Instance | BindingFlags.NonPublic);
            if (field == null)
            {
                Console.WriteLine("Error");
                return;
            }
            field.SetValue(val, 10);
            Console.WriteLine(val.Value);
        }
    }
Результат будет 10.
2
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
10.11.2012, 18:22  [ТС]
Как делать в c# я и так знаю. Я ж писал про с++. В общем понял, спасибо за ответы.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
12.11.2012, 21:55
Serg046, А пример не предоставили...
Serg046, Нужно. Чтобы работало в ЛЮБОМ случае. Включая виртуальные функции. Ну и без использования рефлексии само собой. Ну и естественно на уровне C#.
0
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
13.11.2012, 19:50  [ТС]
Цитата Сообщение от ForEveR Посмотреть сообщение
Serg046, А пример не предоставили...
Да я не успел ответить. Ну в общем вопрос закрыт, я разобрался как это делать в с++.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
13.11.2012, 21:18
Serg046, А пример-то можно? Узнать крайне интересно.
0
21 / 21 / 6
Регистрация: 07.01.2010
Сообщений: 376
13.11.2012, 21:21  [ТС]
Ну я и имел ввиду рефлексию.

Добавлено через 1 минуту
Ваш пост не полностью прочитал, каюсь = ).
Я и не знал что этот способ не всегда пойдет. Ну ды мне это и не надо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.11.2012, 21:21
Помогаю со студенческими работами здесь

Запрет на изменение значения поля
Здравствуйте. Всем хорошего дня и с праздником. А теперь к делу. Подскажите, пожалуйста, как сделать так, чтобы значение в поле нельзя...

Изменение значения поля Label
Нужна такая программа: форма, на ней четыре элемента: кнопка -, по середине Label1, кнопка +, под ними еще Label2. Суть программы, при...

Изменение значения поля самописным атрибутом
Есть свойство public string Trance {get;set;} Можно ли с помощью атрибута на лету получать и изменять его данные? Это мне нужно...

Изменение цвета поля в зависимости от значения
Доброго времени суток. Имеется заполненная таблица, одно из полей которой должно изменять цвет в зависимости от значения...

Изменение значения поля во всех записях
Имеется таблица, в ней поле числового формата. Нужно для каждой записи прибавить к этому полю заданное значение.


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru