Kezdőoldal » Számítástechnika » Programozás » Mire jó ebben az esetben a...

Mire jó ebben az esetben a const? (C++)

Figyelt kérdés

const char& operator[](int i)const{

return pData[i];

}


char& operator[](int i){

return pData[i];

}


Adott ez a két függvény egy String osztályban.


A const nélküli ha jól értem abban tud többet, hogy lehet balérték. Azaz lehetséges vele az, hogy:


String s1 = "Valami";

s1[0] = 'B';


Akkor az s1 "Balami" lesz.


Szóval a const nélküli változatot értem mért kell, de emellé mért kell egy const-os túlterhelés is.


Az milyen helyzetekben segít?



2019. nov. 1. 17:09
 1/1 anonim ***** válasza:
100%

Az első const azt biztosítja, hogy a visszaadott referencia nem módosítható. A második const biztosítja az osztály belső állapotának megmaradását, azaz a metódus nem módosíthatja a belső adatszerkezetet, illetve ugyanezen okból csak hasonlóan const metódusokat hívhat meg. Mivel az index operator egy belső adattaggal tér vissza, ezért a második const értelmében az első const is szükségessé válik, hogy a visszaadott adattag ne legyen módosítható (ami megszegné a második cosnt szerinti kikötést).


Lényegében azért van szükség mindkettőre, mert a const nélküli változatot nem tudod konstans objektumon meghívni, a const-al ellátott változat esetében meg nem módosíthatod azt.

2019. nov. 1. 20:47
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!