Czym jest odniesienie do Const w C ++

Czym jest odniesienie do Const w C ++
W C ++ odniesienia są jak wskaźniki, ale mają wyraźne różnice. Po pierwsze, referencjom nie można przypisać wartości zerowej. Po drugie, operacje arytmetyczne nie mogą być wykonywane w odniesieniach. Po trzecie, po zainicjowaniu odniesienia nie można tego odwoływać do innej zmiennej. Również odniesienia nie można odwołać z operatorem (*).

Jeśli chodzi o przekazywanie argumentów do funkcji, istnieją trzy sposoby na to:

  • Przekazać wartość
  • Przejść przez odniesienie
  • Przekazać referencje const

W tym samouczku omówimy specjalnie Const Reference, jego deklaracja i szczegółowe wdrożenie.

Co to jest odniesienie do Const w C++?

Odniesienie const w C ++ jest odniesieniem ze słowem kluczowym Const. Jest to po prostu odniesienie do stałych. Po zainicjowaniu odniesienia Const wartość, której nie można zmienić punktów odniesienia, a pozostanie niezmieniona w całym kodzie.

Deklarowanie odniesienia jako const jest przydatny w sytuacjach, w których chcemy zapobiec zmianom w obiekcie, jednocześnie umożliwiając wydajny dostęp do wartości obiektu.

Jak zadeklarować odniesienie do const w c++?

W c++, Const Reference można zadeklarować na następujący sposób:

  • Jako parametry funkcji
  • Jako zmienne członka klasy
  • Jako zmienna lokalna

1: Deklaruj odniesienie stałego jako parametry funkcji

Kiedy deklarujemy funkcję podjęcia odniesienia stałego jako parametru, może odczytać wartość odwołanego obiektu, ale nie może jej zmodyfikować. Jest to przydatne, gdy chcemy przekazać obiekt do funkcji, nie pozwalając funkcji go zmodyfikować.

Poniżej znajduje się kod takiego przypadku:

#włączać
void printValue (const int & value)
STD :: Cout << "The value is: " << value << std::endl;

int main ()
int val = 15;
printValue (val);
powrót 0;

Jest to funkcja o nazwie printValue, która przyjmuje odniesienie const do liczby całkowitej jako parametr i drukuje wartość liczby całkowitej do konsoli.

Wyjście

2: Deklaruj odniesienie do zmiennych członków klasy

Gdy zmienna członka klasy jest zadeklarowana jako odniesienie do const, można ją zainicjować na liście inicjalizacji konstruktora, a następnie użyć w całej klasie bez modyfikowania. Może to pomóc poprawić wydajność kodu, unikając niepotrzebnych kopii i modyfikacji obiektów.

Poniżej znajduje się kod takiego przypadku:

#włączać
klasa myClass
publiczny:
MyClass (const int & value): m_value (wartość)
void printValue () const
STD :: Cout << "The value is: " << m_value << std::endl;

prywatny:
const int & m_value;
;
int main ()
int val = 15;
MyClass myObject (val);
MyObject.printValue ();
powrót 0;

Powyższy kod określa klasę, która ma konstruktor, który przyjmuje odniesienie do liczby całkowitej jako parametr i inicjuje z nią wartość Prywatną zmienną członkowską. Klasa ma również wartość drukowania funkcji członka, która drukuje wartość M_Value do konsoli. W funkcji głównej obiekt typu MyClass jest tworzony o wartości całkowitej 15, a jego funkcja wartości drukowania jest wywoływana w celu wydrukowania wartości na konsoli.

Wyjście

3: Deklaruj odniesienie do zmiennych lokalnych

Odniesienie const może być również używane jako zmienna lokalna do odwołania się do istniejącego obiektu bez wykonywania kopii.

Poniżej znajduje się kod takiego przypadku:

#włączać
int main ()
int val = 15;
const int & ref = val;
STD :: Cout << "Value: " << val << std::endl;
STD :: Cout << "Reference: " << ref << std::endl;
powrót 0;

W powyższym kodzie deklarujemy wartość zmiennej liczb całkowitych i inicjujemy ją z wartością 15. Następnie zadeklarujemy stałe odniesienie do ref liczby całkowitych i zainicjujemy go o wartości wartości.

Wyjście

Wniosek

Odniesienie do const jest przydatną cechą w C ++, która działa jak wskaźnik, ale z pewnymi ważnymi różnicami. Nie może zmodyfikować wartości zmiennej, do której jest podłączona i może być używana na różne sposoby, takie jak parametry funkcji, zmienne członka klasy i zmienne lokalne. Aby lepiej zrozumieć przypadki użycia odniesień do stałej w C ++, ten artykuł zawiera szczegółowe wytyczne z przykładami kodowania dla każdego z tych sposobów.