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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
VaJI
 Аватар для VaJI
7 / 5 / 1
Регистрация: 24.03.2013
Сообщений: 40
#1

Геттер и сеттер - C++

22.08.2013, 17:41. Просмотров 477. Ответов 8
Метки нет (Все метки)

Здравствуйте!
Не подскажете, возможно ли создать такой класс для реализации следующих потомков:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class foo()//необходимо реализовать
{};
 
class a : public foo
{
    ///////////////
    int x;
    int y;
    ///////////////
};
//использование 
a.x(10);
int some = a.y();
Т.е. по сути сеттер и геттер с названием функции поля которое необходимо установить. Кол-во полей неизвестно и их тип тоже..
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ded_Vasilij
 Аватар для Ded_Vasilij
231 / 213 / 15
Регистрация: 01.09.2012
Сообщений: 2,103
22.08.2013, 18:22     Геттер и сеттер #2
Цитата Сообщение от VaJI Посмотреть сообщение
//использование
a.x(10);
int some = a.y();
использовать Вы точно не сможете - х и у в private, а сути вопроса не понял, если честно
VaJI
 Аватар для VaJI
7 / 5 / 1
Регистрация: 24.03.2013
Сообщений: 40
22.08.2013, 18:51  [ТС]     Геттер и сеттер #3
x и y в private, но методы x() и y() public. Собственно эти методы и суть вопроса)
gray_fox
What a waste!
 Аватар для gray_fox
1252 / 1135 / 54
Регистрация: 21.04.2012
Сообщений: 2,357
Завершенные тесты: 3
22.08.2013, 18:52     Геттер и сеттер #4
VaJI, не получится, в С++ нет рефлексии. Если только хранить все поля класса в каком-нибудь кортеже...
VaJI
 Аватар для VaJI
7 / 5 / 1
Регистрация: 24.03.2013
Сообщений: 40
22.08.2013, 18:53  [ТС]     Геттер и сеттер #5
Мне подсказали что можно попробовать перегрузить точку, но терзают смутные сомнения.. что вообще потом не обращусь к полям)
gray_fox
What a waste!
 Аватар для gray_fox
1252 / 1135 / 54
Регистрация: 21.04.2012
Сообщений: 2,357
Завершенные тесты: 3
22.08.2013, 18:55     Геттер и сеттер #6
Цитата Сообщение от VaJI Посмотреть сообщение
Мне подсказали что можно попробовать перегрузить точку
Её вообще нельзя перегрузить )
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
22.08.2013, 18:57     Геттер и сеттер #7
gray_fox, Пока нельзя, да. А так видел где-то реализацию перегрузки . в clang-е.
Ну и вот предложенице: http://www.open-std.org/jtc1/sc22/wg...2004/n1671.pdf
А вот и видео: http://www.youtube.com/watch?v=Gy9ITl1AWRY но я смотрел только слайды по нему (https://github.com/boostcon/cppnow_p...oading_dot.pdf)
gray_fox
What a waste!
 Аватар для gray_fox
1252 / 1135 / 54
Регистрация: 21.04.2012
Сообщений: 2,357
Завершенные тесты: 3
22.08.2013, 19:12     Геттер и сеттер #8
ForEveR, ну "проблему" ТС это бы всё равно не решило.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.08.2013, 19:20     Геттер и сеттер
Еще ссылки по теме:

C# Многопоточный геттер System.IndexOutOfRangeException
C++ Интерфейс заставляющий иметь геттер
Геттер для ArrayList Java SE
Сеттер с const параметром C++
Доступ к элементу вектора строк через геттер C++

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

Или воспользуйтесь поиском по форуму:
VaJI
 Аватар для VaJI
7 / 5 / 1
Регистрация: 24.03.2013
Сообщений: 40
22.08.2013, 19:20  [ТС]     Геттер и сеттер #9
ForEveR, мой вопрос это скорее всего не решит т. к:
Один из способов разрешить дилемму — использовать operator.() для а.m только в том случае, если класс ссылки сам не содержит члена с именем m. Мне такое решение нравится больше всего.
Yandex
Объявления
22.08.2013, 19:20     Геттер и сеттер
Ответ Создать тему
Опции темы

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