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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.63
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
#1

Селектор - C++

12.01.2012, 13:57. Просмотров 4131. Ответов 21
Метки нет (Все метки)

Имеется селектор
C++
1
double size() const { return _n;}
Подскажите что значит const?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2012, 13:57     Селектор
Посмотрите здесь:

Оператор селектор -> - C++
Обьясните, пожалуйста, работу оператора селектор -> Что он делает? Для чего нужен? Как вообще с ним работать. Если можно с примером....

Селектор - jQuery
Добрый день, помогите написать селектор. Мне нужно что бы показывался и скрывался именно тот спан, по чьему родителю р я нажал. Не могу...

ос селектор - Linux
Подскажите оптимальный вариант. У меня два винта, на одном ХРишка, на втором Минт росинка, Подскажите как бы мне получше организовать выбор...

Объяснить селектор - HTML, CSS
Вопрос по такому селектору table.tablesorter thead tr .header { background: url(tableSorterRelated/bg.gif) no-repeat center...

IE не понимает селектор - jQuery
На странице имеется 10-20 картинок динамически сгенерированных каждая заключена в span. На каждую подвешиваеться событие onclick обрамление...

Сложный селектор - jQuery
Привет. Помогите пожалуйста составить селектор для выборки нескольких типов <input>. Я пишу универсальную функцию считывания данных для...

Селектор списка - Программирование Android
Как сделать так, чтобы селектор списка после нажатия на позицию оставался нарисованным на ней. По умолчанию селектор рисуется в момент...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
12.01.2012, 14:12     Селектор #2
Значит, что метод не может менять никакие поля класса (кроме тех, что объявлены как mutable), и, как следствие, может быть вызван для константных объектов.
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
12.01.2012, 14:17  [ТС]     Селектор #3
C++
1
const double& get (size_t i) const;
В этом случае тоже самое?
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
12.01.2012, 14:19     Селектор #4
Vidok, да, тот const, что стоит в конце прототипа, обозначает то, что я уже написал. А тот, который в начале, говорит, что будет возвращена константная ссылка.
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
12.01.2012, 14:22  [ТС]     Селектор #5
А во втором случае это тоже селектор или селектор-модификатор?
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
12.01.2012, 14:26     Селектор #6
Vidok, понятия не имею, впервые слышу термин "селектор", применённый к методам классов в С++. Могу сказать одно: первый метод, судя по всему, возвращает количество элементов в некотором контейнере, поэтому его в принципе можно назвать методом-аксессором, а именно геттером. Второй метод, назван get, а значит, также призван возвращать некоторый член класса. По его параметру можно предположить, что он возвращает некоторый элемент последовательности (контейнера). Но это только предположения, оба метода в принципе можно назвать геттерами, или, более обще, аксессорами.
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
12.01.2012, 14:27  [ТС]     Селектор #7
Как все запутанно блин)
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
12.01.2012, 14:31     Селектор #8
Vidok, да ничего сложного. В С++ нет такого жёсткого разделения на аксессоры, как, например, в C# (где для этих целей применяются свойства). Любой метод, который позволяет изменить или получить член класса, можно назвать сеттером или геттером соответственно от английских слов set (установить) и get (получить).
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
12.01.2012, 14:33     Селектор #9
А какой смысл возвращать константную ссылку на double?
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
12.01.2012, 14:36  [ТС]     Селектор #10
C++
1
void setX (double x) { _x = x;}
вот что у нас модификатором называется.
Вот класс
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class WrappedVector
{
 
private:
    static const size_t _n;
    double * _v;
public:
    WrappedVector();
    WrappedVector(const WrappedVector&);
    ~WrappedVector();
    double size() const { return _n;}
    double& getSet (size_t i);
    const double& get (size_t i) const;
    WrappedVector& operator=(const WrappedVector&);
 
    bool operator==(const WrappedVector&) const;
    bool operator!=(const WrappedVector&) const;
    double operator*(const WrappedVector&) const;
    const WrappedVector operator*(double) const;
    const WrappedVector operator+(const WrappedVector&) const;
 
};
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
12.01.2012, 14:38     Селектор #11
fasked, если сильно пофантазировать, то можно решить, что это аналог метода at() для вектора, например. И тут два варианта: либо сделано для единообразия с неконстантным вариантом (который, естественно, возвращает неконстантную ссылку), либо класс переделывался из шаблонного, в котором, разумеется, возвращалась ссылка на value_type.

Добавлено через 1 минуту
Цитата Сообщение от Vidok Посмотреть сообщение
вот что у нас модификатором называется.
Это то, что я называл сеттером. В принципе, его можно назвать модификатором, ведь в результате его работы объект модифицируется. Тот метод, про который вы говорили "модификатор", таковым я бы называть не стал.

fasked, смотри ка, я угадал, вектор))
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
12.01.2012, 14:57     Селектор #12
Цитата Сообщение от silent_1991 Посмотреть сообщение
это аналог метода at() для вектора, например
Цитата Сообщение от Vidok Посмотреть сообщение
C++
1
2
double& getSet (size_t i);
const double& get (size_t i) const;
Если методы делают одно и тоже и разница лишь в константности, то лучше дать им одинаковые имена.
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
12.01.2012, 15:03  [ТС]     Селектор #13
GetSet вызывается на ввод данных в вектор, get для считывания)
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
12.01.2012, 15:07     Селектор #14
Vidok, вам правильно сказали, нужно сделать пару методов get (а лучше at), которые имеют сигнатуры:
C++
1
2
double& at(size_t index);
const double& at(size_t index) const;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.01.2012, 15:13     Селектор
Еще ссылки по теме:

Селектор jquery - jQuery
ВОт например есть селектор jquery который выбирает атрибут. $('input') а как сделать выбрать перечень атрибутов?

селектор css - HTML, CSS
Допустим есть div <div class=>"jstree-icon jstree-themeicon werra"</div> Все классы кроме werra изменяются,как выбрать селектором css...

Написать селектор - jQuery
Здравствуйте. Помогите пожалуйста написать селектор. Нужно выбрать теги с определённым значением одного атрибута внутри тега с определённым...

Селектор CSS3 - HTML, CSS
В CSS 3 есть миллион новых селекторов, но вот почему-то именно то что нужно, найти не могу. Есть куча <td>, надо задать выравнивание...

Не понятный селектор - HTML, CSS
вот код из книги a.special : hover { } я не могу понять что это значит a.special почему через точку ? и скажите пожалуйста...


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

Или воспользуйтесь поиском по форуму:
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
12.01.2012, 15:13  [ТС]     Селектор #15
Еще раз) второй конст не дает менять атрибуты, а первый это конст. ссылка по отношению к самому вектору? Для чего она я не очень понял, & - это у нас что бы иметь прямой доступ к атрибуту? А конст?
Yandex
Объявления
12.01.2012, 15:13     Селектор
Ответ Создать тему
Опции темы

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