Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
outoftime
║XLR8║
764 / 663 / 212
Регистрация: 25.07.2009
Сообщений: 3,320
Записей в блоге: 5
1

Метод класса

15.04.2011, 15:25. Просмотров 780. Ответов 11
Метки нет (Все метки)

Что дает спецификатор const в методе?
C++
1
char *getBuffer() const { return m_buffer; };
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2011, 15:25
Ответы с готовыми решениями:

Как передать в метод класса Menu указатель на метод дочернего класса?
Как передать в метод базового класса указатель на метод дочернего: class...

Как описать метод класса? Как двумя способами описать инлайнируемый метод класса? Что такое this?
Раздел 1. Строки: нужен фрагмент кода. Обязательно используйте функции для...

Создать для класса виртуальный метод, возвращающий уникальный идентификатор класса
В курсаче по ООП сказано создать для класса виртуальный метод,возвращающий...

Может ли метод родительского класса обратиться к полю дочернего класса
Может ли метод родительского класса обратиться к полю дочернего класса?

Как в методе класса вызвать другой метод того же класса?
class mate { public: int AplusB(int A, int B) { return A+B; } int...

11
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
15.04.2011, 15:29 2
Даёт возможность вызвать этот метод для константного объекта.
Но данный код не скомпилируется, т.к. пытаешься вернуть константный указатель как неконстантный.
0
outoftime
║XLR8║
764 / 663 / 212
Регистрация: 25.07.2009
Сообщений: 3,320
Записей в блоге: 5
15.04.2011, 15:53  [ТС] 3
Deviaphan, компилируется, мало того - работает (:
C++
1
2
3
4
5
6
7
8
9
10
11
class DataSpreadSheat
{
protected:
    char *m_buffer;
public:
    char *getBuffer() const;
};
 
char *DataSpreadSheat::getBuffer() const {
    return m_buffer;
};
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
15.04.2011, 16:06 4
Слишком опасно так делать. Я бы на его месте не работал.)
0
Ma3a
Эксперт С++
619 / 463 / 57
Регистрация: 28.01.2011
Сообщений: 605
15.04.2011, 16:17 5
Deviaphan, outoftime, константные методы всего лишь блокируют изменение переменных внутри метода, поскольку m_buffer тут никак не меняется, всё работает. Данное поведение может быть изменено, если полю класса поставить модификатор mutable, тогда поле класса можно изменять в константном методе, но вот тогда это действительно будет опасно
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
15.04.2011, 16:21 6
Цитата Сообщение от Ma3a Посмотреть сообщение
но вот тогда это действительно будет опасно
Наоборот.) Если класс меняет своё поле, объект знает, что происходит. А вот когда внутренности отдаются в свободное плавание, это оч опасно.
А я был уверен, что не получится вернуть не константный указатель из константного метода.) У меня даже ни разу рука не поднялась подобный код написать, чтобы убедиться в обратном.) Да и желания не появлялось такого.)))
0
Ma3a
Эксперт С++
619 / 463 / 57
Регистрация: 28.01.2011
Сообщений: 605
15.04.2011, 16:24 7
Цитата Сообщение от Deviaphan Посмотреть сообщение
Если класс меняет своё поле, объект знает, что происходит.
Главное, чтобы программист знал, что происходит А насчет возврата неконстантного указателя эт конечно плохо, не спорю.
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
15.04.2011, 16:28 8
Цитата Сообщение от Ma3a Посмотреть сообщение
Главное, чтобы программист знал, что происходит
Ну, я примерно это и имел в виду.))) Т.е. класс может использовать не только его разработчик. Соответственно и отдавая себя на растерзания куче программистов классу сложно поддерживать себя в актуальном состоянии.)
0
outoftime
║XLR8║
764 / 663 / 212
Регистрация: 25.07.2009
Сообщений: 3,320
Записей в блоге: 5
15.04.2011, 16:35  [ТС] 9
Ma3a, мне нужно хранить указатель что-бы запусткать _itoa(), поэтому пришлось поизвращаться (:
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
15.04.2011, 16:39 10
Цитата Сообщение от outoftime Посмотреть сообщение
поэтому пришлось поизвращаться
Что мешает передавать в класс число и вызывать itoa внутри, без извращений?
0
outoftime
15.04.2011, 16:49  [ТС]
  #11

Не по теме:

Deviaphan, блин, ступил...

0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
15.04.2011, 16:58 12
И не забудь про возможность перегрузки, чтобы и double передавать если надо.)
0
15.04.2011, 16:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2011, 16:58

Как в классе А у объекта класса B вызвать метод класса B ?
Есть Класс A и класс B . В классе B лежит объект типа ArrayList , назовём его...

Чем отличается шаблонный метод класса от шаблонного класса?
Чем отличается шаблонный метод класса от шаблонного класса???????ПЛИЗ!!!!Если...

Может ли метод класса возвращать экземпляр этого же класса?
такой вопрос, реально что бы функция класса имела тип класса(возвращала класс),...


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

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

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