Я изучаю 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)