Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
hoz
1 / 1 / 0
Регистрация: 25.08.2014
Сообщений: 101
#1

Если объект константный, означает ли это, что ни один его член-элемент или член-метод не изменится? - C++

25.08.2014, 01:13. Просмотров 345. Ответов 2
Метки нет (Все метки)

Назрел такой вопрос: Если объект константный это означает, что ни один его член-элемент или член-метод не изменится или только некоторые из них?

Спрашиваю, потому что прочитал такую вещь:
" Метод с модификатором const называется постоянным и не может модифицировать неявные члены своего класса "

Я так и не понял, не возможность изменения касается только неявных членов или вообще любых членов?

И вообще, что за неявные члены? И что такое явные члены?
Хочу понять, когда применять модификатор const, вот и штудирую данный вопрос.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2014, 01:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Если объект константный, означает ли это, что ни один его член-элемент или член-метод не изменится? (C++):

Может ли объект-член, или объект-элемент достучаться к содержащему его? - C++
Предположим, class A { ... }; class B { .... A a; ... };

Что значит константный указатель на объект, указатель на константный объект, и как это можно использовать? - C++
Подскажите, что значит константный указатель на объект, указатель на константный объект, и как это можно использовать??

Статический константный член-класса - C++
Добрый день, что компилятору не нравится? VS 2013 // рекурсивное шаблоное метапрограммирование #include <iostream> using namespace...

Одномерные массивы. Найти максимальный член в массиве, начиная со второго член - C++
Как найти максимальный член в массиве, начиная со второго члена?

В последовательности а1,...,a30 поменять местами наибольший член и член с номером m. - C++
Даны натуральное число m, действительные числа а1,..,a30 (числа попарно различны). В последовательности а1,...,a30 поменять местами...

Поменять местами наибольший член последовательности и член с номером m - C++
Помогите в 4 пункте меню сделать вывод на консоль, в файл и защиту если сразу выбрать 4 пункт. #include <stdio.h> #include...

2
DrOffset
7471 / 4467 / 1015
Регистрация: 30.01.2014
Сообщений: 7,322
25.08.2014, 01:32 #2
Цитата Сообщение от hoz Посмотреть сообщение
Я так и не понял, не возможность изменения касается только неявных членов или вообще любых членов?
Честно говоря первый раз вижу такую формулировку. Но скорее всего имеется в виду следующее:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
struct B
{
    int a;
};
 
class A
{
public:
    void foo() const
    {
         a = 1; // error "яный член" константен, менять нельзя
         b->a = 1; // ok здесь константен указатель, но указываемые данные спокойно можно менять
    }
 
private:
    int a;
    B * b; 
};
Цитата Сообщение от hoz Посмотреть сообщение
Хочу понять, когда применять модификатор const, вот и штудирую данный вопрос.
Применять нужно всегда, когда нужно продекларировать, что метод не может менять состояние класса.

Добавлено через 6 минут
Цитата Сообщение от hoz Посмотреть сообщение
Если объект константный это означает, что ни один его член-элемент или член-метод не изменится или только некоторые из них?
Кстати, константность может быть логической. Т.е. объект константен, но некоторые его данные нет. Это обеспечивается с помощью mutable.
0
gromo
372 / 271 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
25.08.2014, 01:48 #3
Цитата Сообщение от DrOffset Посмотреть сообщение
Кстати, константность может быть логической. Т.е. объект константен, но некоторые его данные нет
В это понятие также входит и изменение данных, адресуемых указателем-членом, как в твоем примере
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.08.2014, 01:48
Привет! Вот еще темы с ответами:

Член-ссылка на другой член класса - C++
Есть класс Dot с двумя членами - x и y. Требуется еще один класс, который хранит width i height, но реализация этого класса ничем не...

скажите пожалуйста, что означает здесь b. ,это какия-либо функция или что? - C++
скажите пожалуйста, что означает здесь b. ,это какия-либо функция или что? //анализируем все клетки доски for(int i = 0; i < 8;...

Если в массиве есть хотя бы один член, меньший чем -2, то все отрицательные члены заменить их квадратами - Turbo Pascal
Помогите пожалуйста написать программу!) Если в данном массиве действительных чисел А1,...,Аn есть хотя бы один член, меньший чем -2,...

На test.asp asp понимает, что это объект, но не позволяет вызвать ни один метод (функцию, переменную) - C# ASP.NET
Люди, подскажите, что делать. Пишем следующее.. (на VBScript) Class Cart .... Public Function Count .... End Class Set...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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