s_theCapt
s_theCapt
#programowanie #cpp pytanko o const-overloading. Mam dwie funkcje:
https://pastebin.com/BCuEcEFN
Która jest priorytetyzowana? Tzn. czy mam pewność, że wywołując funkcję z obiektu non-const, użyta zostanie właśnie ta non-const jeżeli zwracana wartość nie jest pointerem lub referencją? Chcę żeby wartość "value" była aktualizowana wyłącznie w razie potrzeby i nie obliczana na nowo za każdym razem, bo lista "history" może być długa... ale jednocześnie chciałem sobie dla porządku dodać const-get, bo czemu nie? :D
0
  • Najlepsze
  • Wszystkie komentarze
lionbest
@MamCieNaHita: No mutable members to lepiej unikać. No i na pewno są starsze C++03, pomyliło ci się z zapedne z lambdami.

@s_theCapt: Tutaj raczej getValue nie powinno się tak nazywać, raczej computeValue.
Sens dywagacji na ten temat byłby
1
MamCieNaHita
@s_theCapt: dla tych funkcji jeżeli masz const albo const& albo const&& to zostanie wywołana const, dla reszty nonconst. jak chcesz "zcacheować" i wyliczyć wartosc w metodzie const - użyj mutable membera(since C++11)
0
s_theCapt
s_theCapt
@MamCieNaHita: o, właśnie nie chciałem cachować w const i odpowiedziałeś mi na moje pytanie, ale ten mutable member to się zainteresuję, dzięki!
0