skip to Main Content

Słowo kluczowe const (C/C++) – Kiedy przekazuje się stałe do funkcji

Jeżeli ktoś potraktował moje rady, bardzo surowo może natrafić na problem który dzisiaj omówię.
W poprzednim poście opisywałem taki przypadek:

Wszystko działa poprawnie, gdyż korzystamy z zmiennej a. Jednak problem się pojawia gdy chcemy do funkcji przekazać stałe wyrażenie, tak aby pominąć użycie zmiennej.

Kompilator zgłasza błąd ponieważ do funkcji fun trzeba podać adres a nie wartość. A nie można wyciągnąć adresu za pomocą operatora ‚&’.

Są dwa sposoby na ominięcie tego problemu:

  • przekazywać do funkcji wartość nie wskaźnik
  • skorzystanie z C++ i jego możliwości przekazywania argumentów jako referencji

Działający kod wyglądałby tak:

Bardzo ważne jest słowo kluczowe ‚const’ wewnątrz paramentu w funkcji. Bez tego kompilator (Visual Studio 2011) będzie zgłaszał błąd o treści:

error C2664: ‚fun’ : cannot convert parameter 1 from ‚int’ to ‚int &’

Paweł Sołtysiak

Programista, domowy kucharz i "amator amerykańskiej polityki".
Zbieram informacje z całej sieci, po odrzuceniu chwastów i dodaniu swojej opinii publikuje na blogu.

Back To Top