Como a função de membro const pode alterar os dados de um objeto?
Ainda outra pergunta sobreconst
uso de palavras-chave em C ++ (eu sou iniciante em C ++, tentei encontrar uma resposta no SO - muitas respostas, mas não consegui encontrar a resposta).
Pergunta 1: na seguinte função de membro
template <class T>
bool BinTree<T>::insert( Node<T>* & node, const T& val ) const
{
node = new Node<T>(val);
}
Eu sou capaz de alterar os dados de uma classe que são passados como referência. Que tal uma função membro serconst
? É verdade que issoconst
impede que os dados sejam alterados apenas explicitamente, mas permite alterá-los através de uma referência?
2. Você pode confirmar minha compreensão:
func( const Node<T>* const & node ) {...}
nesta assinatura de função, o 2ºconst
significa ponteiro const e o primeiroconst
significa const Node (então o nó é uma referência para const ponteiro para const Node)?