Возврат неконстантного указателя из константного метода
От: lazyrun  
Дата: 23.04.10 10:40
Оценка:
Почему работает такой код?

class MainWidget
{
public:
   MainWidget();
   ~MainWidget();
   QTableView * tableView() const; //! константная функция
private:
   QTableView * tableView_;//! указатель на неконстантный объект
};


Получив из этого класса указатель на tableView_ я смогу его изменить как угодно.
Значит изменится внутренний объект класса. А по идее const хвостик гарантирует, что функция не изменяет внутреннее состояние класса.

Или надо возвращать

   const QTableView * tableView() const;

?

Почему тогда нет даже предупреждения от компилятора? (msvc 2005)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.