Per dirla semplicemente. In un metodo costante, è impossibile cambiare i valori delle variabili dichiarate nella stessa classe in cui si trova il metodo costante (o dichiarate nel suo genitore). È così?
Forse dovresti stare attento a quello che scrivi, dopo tutto. Come può un metodo cambiare una classe? Forse un oggetto di classe?
E la domanda era nella dichiarazione:
Alexey ha dato un esempio che può cambiare, quindi penso che l'affermazione sia sbagliata, volevo sentire il commento di Vasily.
Che ne dici di leggere con più attenzione? -"cambiare i valori delle variabili dichiarate"
Come puoi parlare dell'affermazione di Alexey? Non l'ha solo affermato, l'ha confermato per davvero, ha dato un esempio, lo si può buttare in un editor e vedere quando si compila e quando no.
Per dirla semplicemente. In un metodo costante, è impossibile cambiare i valori delle variabili dichiarate nella stessa classe in cui si trova il metodo costante (o dichiarate nel suo genitore). È così?
No. Sapete che ogni oggetto di una classe ha il suo insieme di variabili dichiarate in questa classe, vero? E un metodo costante non può cambiare solo l'oggetto (cioè l'insieme) da cui è stato chiamato.
Alexey Kozitsyn: No. Sapete che ogni oggetto di una classe ha il suo insieme di variabili dichiarate in quella classe, vero? E un metodo costante non può cambiare solo l'oggetto (cioè l'insieme) da cui è stato chiamato.
Cosa c'entra la chiamata? È la posizione del metodo e delle variabili che conta. Se il metodo e le variabili si trovano nella stessa classe, non può essere cambiato. Se la classe viene passata per riferimento come parametro, è possibile.
Dmitry Fedoseev: Cosa c'entra la chiamata? Ciò che conta è la posizione del metodo e delle variabili. Se il metodo e le variabili si trovano nella stessa classe, non si può cambiare. Se la classe viene passata per riferimento come parametro, è possibile.
La sfida qui è che se l'oggetto1 della classe A chiama un metodo costante della classe A, allora quel metodo non può cambiare quell'oggetto1 (cioè l'oggetto1 che lo ha chiamato). Se però l'oggetto1 viene passato per riferimento allo stesso metodo costante, ma chiamato dall'oggetto2 della classe A, allora l'oggetto1 può essere cambiato. L'oggetto2, a sua volta, non può.
Non è il tuo, ma uno totalmente straniero con lo stesso tipo.
Cosa non è tuo? Che il tipo è lo stesso?
Sta dicendo che un metodo costante non può cambiare la classe di qualcun altro?
E quando rispondi, per favore sii più specifico, non ho capito cosa stai cercando di dire.
Cosa non è tuo? Che il tipo è lo stesso?
Sta dicendo che un metodo costante non può cambiare la classe di qualcun altro?
E quando rispondi, per favore sii più esplicito, non ho capito cosa intendi.
Per dirla semplicemente. In un metodo costante, è impossibile cambiare i valori delle variabili dichiarate nella stessa classe in cui si trova il metodo costante (o dichiarate nel suo genitore). È così?
Sei tu che non capisci quello che stai scrivendo Può cambiare la classe di qualcun altro di qualsiasi tipo e uguale a se stessa.
Forse dovresti stare attento a quello che scrivi, dopo tutto. Come può un metodo cambiare una classe? Forse un oggetto di classe?
E la domanda era nella dichiarazione:
Un metodo costante non può cambiare i membri della sua classe.
Alexey ha dato un esempio che può cambiare, quindi non credo che l'affermazione sia corretta, volevo sentire il commento di Vasiliy.
Forse dovresti stare attento a quello che scrivi, dopo tutto. Come può un metodo cambiare una classe? Forse un oggetto di classe?
E la domanda era nella dichiarazione:
Alexey ha dato un esempio che può cambiare, quindi penso che l'affermazione sia sbagliata, volevo sentire il commento di Vasily.
Che ne dici di leggere con più attenzione? -"cambiare i valori delle variabili dichiarate"
Come puoi parlare dell'affermazione di Alexey? Non l'ha solo affermato, l'ha confermato per davvero, ha dato un esempio, lo si può buttare in un editor e vedere quando si compila e quando no.
Per dirla semplicemente. In un metodo costante, è impossibile cambiare i valori delle variabili dichiarate nella stessa classe in cui si trova il metodo costante (o dichiarate nel suo genitore). È così?
Forse dovresti stare attento a quello che scrivi, dopo tutto. Come può un metodo cambiare una classe? Forse un oggetto di classe?
..
Come questo:
No. Sapete che ogni oggetto di una classe ha il suo insieme di variabili dichiarate in quella classe, vero? E un metodo costante non può cambiare solo l'oggetto (cioè l'insieme) da cui è stato chiamato.
Cosa c'entra la chiamata? Ciò che conta è la posizione del metodo e delle variabili. Se il metodo e le variabili si trovano nella stessa classe, non si può cambiare. Se la classe viene passata per riferimento come parametro, è possibile.