[c++] memberfunktion in const-nes überladen

#2714543
Lesenswert?

Hi,

Ich habe häufiger sowas im Code:
1
class A
2
{
3
  public:
4
          IrgendWas& getIrgendwas()     { return iw; };
5
    const IrgendWas& getIrgendwas()const{ return iw; };
6

7
  private:
8
    IrgendWas_t m_iw;
9
}

In dem Fall ist die funktion getIrgendwas trivial, aber in einigen ist 
da mehr code drin.

gibt es eine elegante Möglichkeit, dass ein getter den anderen aufruft?

das const vom this wegcasten zählt für mich nicht als elegant ;)
#2714635
Lesenswert?

Εrnst B✶ schrieb:
> Vlad Tepesch schrieb:
>> man will dem Aufrufer ja aber einmal ein veränderbares Objekt liefern
>> und einmal ein konstantes
>
> Damit Sachen wie
>
> object->getIrgendwas()+=42;
>
> funktionieren?

Auf der anderen Seite:

  Auto Opel;
  Opel.Fenster().Close();

soll compilierbar sein
allerdings sollte

  const Auto Ford;
  Ford.Fenster().Close();

ein Fehler sein.

Wohingegen

 const Auto Ford;
 if( Ford.Fenster().IsClosed() )
   ...

wieder in Ordnung sein soll.

Ich seh jetzt keinen Weg, wie ich das ohne 2 verschiedene Fenster() 
Member erreichen könnte.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren