Inoltre, importa dove nella classe dichiarate l'amico? Ha importanza se si aggiunge una funzione di amico o di classe?In C++, l'aggiunta di un amico ad una classe cambia il suo layout di memoria?
7
A
risposta
18
No, non lo è. È una cosa puramente in fase di compilazione: simile ai modificatori di accesso stessi.
Nonostante il fatto che si scrive la dichiarazione all'interno della classe, non realmente aggiungere un amico a una classe. Fondamentalmente lo dichiara qualcos'altro come amico della classe e semplicemente gli consente di accedere ai membri privati della classe, come se fossero pubblici.
1
Come già accennato, è puramente un meccanismo in fase di compilazione.
Problemi correlati
- 1. Layout memoria classe CLR
- 2. È una classe locale in un metodo di una classe un amico di questa classe?
- 3. layout di memoria della classe ereditata
- 4. Classe C++ con amico obiettivo-
- 5. Una funzione di costruzione può essere un amico in C++?
- 6. Come fornire la definizione di un operatore amico in una classe annidata di una classe template?
- 7. Come è il layout di memoria di una classe contro una struct
- 8. C++ aggiungendo amico a una classe template per typecast
- 9. C++ Struttura simile ad un amico per Rust
- 10. Layout di memoria di ereditarietà multipla C++ con "Classi vuote"
- 11. Nuovo operatore C++ - layout di memoria
- 12. java -like amico meccanismo di classe
- 13. Restrizione di layout su una classe di layout non standard
- 14. Funzioni amico in C++
- 15. Layout di memoria Golang rispetto a C++/C
- 16. Ottenere casuale amico di un amico con il conteggio reciproco
- 17. Come è il layout di memoria di un programma C/C++?
- 18. Quali sono il layout e le dimensioni dell'intestazione di una classe gestita nella memoria non gestita?
- 19. Ottimizzazione del layout di memoria delle istanze di classe in C++
- 20. Inserimento di un vettore C++ come membro in una classe che utilizza un pool di memoria
- 21. Modellazione amico di amico rapporti in MongoDB
- 22. Gonfiare un layout xml in una classe di visualizzazione personalizzata
- 23. Layout di memoria di una classe con ereditarietà multipla o virtuale e vtable (s)?
- 24. Perché l'aggiunta di una proprietà al prototipo di un oggetto letterale cambia il suo "tipo"?
- 25. Cambia push-follow o il suo stile di animazione
- 26. Il bytecode di una classe può cambiare se una classe/interfaccia genitore cambia?
- 27. Chiamare un Windows Form con il suo nome di classe
- 28. È legale ad un amico una funzione tramite una dichiarazione usando?
- 29. struct layout di componenti di memoria
- 30. std :: string ha bisogno di memorizzare il suo carattere in un pezzo di memoria contigua?
Si noti che, tecnicamente, lo standard C++ non definisce un layout di memoria per i tipi non POD. –