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)?