Здравствуйте, 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*, ну и не использовать лом там, где не нужно