У меня есть класс, который содержит массив «float ** table
». Теперь я хочу, чтобы функция-член возвращала его, но не хочу, чтобы он был изменен вне класса. Итак, я сделал это:Как вернуть const Float ** из функции C++
class sometable
{
public:
...
void updateTable(......);
float **getTable() const {return table;}
private:
...
float **table;
}
Это компилируется ОК, когда я вызываю getTable с постоянным объектом. Теперь я попытался сделать безопаснее, объявив getTable как «const float **getTable()
». Я получил следующее сообщение об ошибке компиляции:
Error:
Cannot return float**const from a function that should return const float**.
Почему? Как я могу избежать изменения таблицы вне класса?
Указатель на указатель на указатель на ..... Похож на плохой дизайн. Это C++ - используйте 'std :: vector' и возвращайте ссылки. –