Я изучаю c ++ и наткнулся на этот оператор const_cast.Рассмотрим следующий пример:
class Test
{
private:
char name[100];
public:
Test(const char* n) { std::strncpy(name, n, 99); name[99]=0; }
const char* getName() const { return name; }
}
Теперь пользователь может сделать
Test t("hi");
const_cast<char*>(t.getName())[0] = 'z'; //modifies private data...
Это нормально?Я имею в виду изменение личных данных, поскольку целью возврата const char * было предотвращение изменения личных данных.Как мне предотвратить это?(без использования std :: string)