Форум программистов, компьютерный форум CyberForum.ru

Как изменить статический приватный член класса? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
graph
1 / 1 / 0
Регистрация: 31.10.2008
Сообщений: 21
07.05.2009, 16:24     Как изменить статический приватный член класса? #1
Как изменить статический приватный член класса если менять его нужно в main()!??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2009, 16:24     Как изменить статический приватный член класса?
Посмотрите здесь:

C++ Vector как член класса
C++ Член-ссылка на другой член класса
Как добавить в вектор приватный объект класса C++
operator+ как член класса C++
Массив объектов класса как член другого класса C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rififi
 Аватар для Rififi
2330 / 1045 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
07.05.2009, 16:56     Как изменить статический приватный член класса? #2
Никак.
Приватные поля не для того придумывали, чтобы кто попало изменять мог.
Monte-Cristo
 Аватар для Monte-Cristo
2805 / 1370 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
07.05.2009, 18:22     Как изменить статический приватный член класса? #3
прямого доступа к приватным членам из main() нет... вы можете только применить следующую конструкцию:

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
#include <iostream>
class A
{
    private:
        static int var;
 
    public:
        void SetVar(int n)
        {
            var = n;
        }
 
        void GetVar()
        {
            cout << var << endl;
        }
};
 
int A::var = 0;
 
int main()
{
    A obj;
    obj.SetVar(5);
    obj.GetVar();
 
    system("pause");
    return 0;
}
Rumata
4 / 4 / 0
Регистрация: 10.04.2009
Сообщений: 23
07.05.2009, 20:47     Как изменить статический приватный член класса? #4
Цитата Сообщение от graph Посмотреть сообщение
Как изменить статический приватный член класса если менять его нужно в main()!??
в public создать метод этого класса, в main() вызвать метод

прямого доступа нет
НеСказочник
58 / 46 / 7
Регистрация: 12.11.2012
Сообщений: 339
Записей в блоге: 2
13.11.2012, 02:13     Как изменить статический приватный член класса? #5
А как на счёт рефлексии? Неужели не получится?


PS: Спрашиваю, потому что сейчас как раз подобную задачу решаю (для сериализации нужно) и пытаюсь разобраться с рефлексией.
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
13.11.2012, 09:20     Как изменить статический приватный член класса? #6
В C++ нет рефлексии на уровне языка. Если вы нашли библиотеку, реализующую её, — читайте документацию к ней.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
13.11.2012, 09:35     Как изменить статический приватный член класса? #7
Цитата Сообщение от Rififi Посмотреть сообщение
Никак.
Приватные поля не для того придумывали, чтобы кто попало изменять мог.
Ну почему же, можно. В мейне вызвать метод, а в нём поменять.

Добавлено через 1 минуту
Цитата Сообщение от НеСказочник Посмотреть сообщение
А как на счёт рефлексии?
А что такое рефлексия?
Пaтрик
 Аватар для Пaтрик
394 / 387 / 38
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
13.11.2012, 09:48     Как изменить статический приватный член класса? #8
taras atavin, reflection
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2012, 09:52     Как изменить статический приватный член класса?
Еще ссылки по теме:

C++ Массив как член класса
Как передать нестатическое поле в статический метод класса? C++
Статический константный член-класса C++

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

Или воспользуйтесь поиском по форуму:
НеСказочник
58 / 46 / 7
Регистрация: 12.11.2012
Сообщений: 339
Записей в блоге: 2
13.11.2012, 09:52     Как изменить статический приватный член класса? #9
Цитата Сообщение от taras atavin Посмотреть сообщение
Ну почему же, можно. В мейне вызвать метод, а в нём поменять.

Добавлено через 1 минуту
А что такое рефлексия?
Рефлексия - это как раз и есть штука, придуманная для подобных задач. Но подходит она не везде: http://ru.wikipedia.org/wiki/%D0%9E%...BD%D0%B8%D0%B5)
Yandex
Объявления
13.11.2012, 09:52     Как изменить статический приватный член класса?
Ответ Создать тему
Опции темы

Текущее время: 02:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru