Jak stała funkcja składowa może zmienić dane obiektu?

Jeszcze jedno pytanieconst użycie słowa kluczowego w C ++ (jestem nowicjuszem w C ++, próbowałem znaleźć odpowiedź na SO - zbyt wiele odpowiedzi, ale nie udało mi się znaleźć odpowiedzi).
Pytanie 1: w następującej funkcji członka

template <class T>  
bool BinTree<T>::insert( Node<T>* & node, const T& val ) const  
{
    node = new Node<T>(val);
}

Jestem w stanie zmienić dane klasy, które są przekazywane jako odniesienie. A co z funkcją członka?const? Czy to prawda, że ​​toconst zapobiega bezpośredniej zmianie danych, ale pozwala zmienić je poprzez odniesienie?
2. Czy możesz potwierdzić moje zrozumienie:

func( const Node<T>* const & node ) {...}

w tej funkcji podpis 2-giconst oznacza const pointer i 1-stconst oznacza const Node (więc węzeł jest odwołaniem do stałego wskaźnika do const Node)?

questionAnswers(1)

yourAnswerToTheQuestion