Re: const char* const - Путаница
От: Bell Россия  
Дата: 14.12.09 02:52
Оценка:
Здравствуйте, TheAteist, Вы писали:

TA>"const char* const" в функции GetName() надо чтоб зажитит m_name, т.е. чтоб не изменить его значение?


Функция GetName возвращает константный указатель на константную строку. В принципе первый const избыточен, а вот второй как раз защищает возвращаемый объект (строку) от модификаций.

TA>Но вот таким образом у меня получается изменить значение m_name с "name1" на "name2"

TA>
TA>Device d("name1");
TA>strcpy((char*)d.GetName(),"name2");
TA>


Против лома нет приема — ты своими руками снял константность с результата GetName — компилятор после этого умывает руки

TA>Или я не правильно понял "const char* const". Поясниете плиз.

Достаточно возвращать из функции char const*, ну и не использовать лом там, где не нужно
Любите книгу — источник знаний (с) М.Горький
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.