Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[C++] Зачем нужен этот const 24.05.02 00:35
Автор: Disaррear Статус: Незарегистрированный пользователь
|
class Test
{
public:
CString member;
void Test() const //Зачем надо этот const
{
member.Format("%d",5); //Вызывает ошибку
}
};
|
|
[C++] Зачем нужен этот const 24.05.02 00:38
Автор: + <Mikhail> Статус: Elderman
|
> class Test > { > public: > CString member; > void Test() const //Зачем надо этот const > { > member.Format("%d",5); //Вызывает ошибку > } > }; A za tem i nuzhen chto by ty ne modificiroval data members.
|
| |
[C++] А как же так? 24.05.02 19:22
Автор: Disaррear Статус: Незарегистрированный пользователь
|
class Test
{
public:
CString member;
CString *pMember;
Test() { pMember = &member; }
void Test() const //Зачем надо этот const
{
pMembe->.Format("%d",5); //Вызывает ошибку
}
};
А вот так почуму работает? да и вообще зачем нужны такие функции которые "не могут" модифицировать data members
|
| | |
[C++] Немного спецификации 25.05.02 00:29
Автор: whiletrue <Роман> Статус: Elderman
|
Функции со спецификатором const предназначены только для чтения данных и могут быть вызваны для объектов со спецификатором const, вто время, как функции без спецификатора const этого сделать не могут.
Вся эта байда мутится для того, чтобы случайно не поменять данные в теле такой функции.
А для модификации данных внутри таких функции используется конструкция ((имя_класса*)this)->... И если такая конструкция встречается, то она наверняка не случайна.
|
| | |
[C++] A ne poshli by vy sad?! 24.05.02 20:55
Автор: + <Mikhail> Статус: Elderman
|
|
|
|