Además, no importa dónde en la clase se declara el amigo? ¿Importa si agrega una clase de amigo o una función de amigo?En C++, no añadir un amigo a una clase cambia su esquema de memoria?
7
A
Respuesta
18
No, no lo hace. Es una cosa puramente de tiempo de compilación: similar a los modificadores de acceso en sí mismos.
A pesar de que se escribe la declaración dentro de la clase, no es realmente añadir un amigo a una clase. Se podría básicamente declara algo más que un amigo de la clase y simplemente permita el acceso de miembros privados de la clase, como si fueran pública.
1
Como ya se mencionó, es puramente un mecanismo de tiempo de compilación.
Cuestiones relacionadas
- 1. c + + clase con objetivo-c amigo
- 2. añadir una anotación a una clase de unión JAXB de un esquema de
- 3. Clase de amigo sin usar en C++
- 4. Añadir MetadataType a clase derivada en C#
- 5. Cuándo utilizar la clase amigo en C++
- 6. Añadir una clase a un ª
- 7. Cómo añadir un evento a una clase
- 8. C# - Reparto clase genérica a su clase base no genérico
- 9. ¿Puede una clase anidada de C++ heredar su clase adjunta?
- 10. amigo con clase pero no puede acceder a miembros privados
- 11. Llamar a una función a través de su dirección en la memoria en c/C++
- 12. ¿Usar una clase de amigo frente a agregar descriptores de acceso para pruebas unitarias en C++?
- 13. ¿Cómo declarar un amigo que es miembro de otra clase aún no definida en C++?
- 14. añadir dinámicamente anotación a una clase existente
- 15. Añadir a la clase personalizada en Python
- 16. Añadir una clase a un elemento con Nokogiri
- 17. ¿El "amigo" de una clase se extiende a las clases declaradas dentro de esa clase?
- 18. Función de amigo de plantilla de una clase de plantilla
- 19. Añadir una clase a un DIV con javascript
- 20. Funciones de amigo en C++
- 21. añadir una función de decorar a una clase
- 22. ¿Por qué no puedo declarar a un amigo a través de un typedef?
- 23. ASP.NET Datos dinámicos que no ven metadatos parciales clase "amigo"
- 24. clase de amigo con acceso limitado
- 25. ¿Por qué una clase no puede extender su propia clase anidada en C#?
- 26. ¿Por qué no puedo cambiar a un miembro privado de una clase de una clase de amigo en un espacio de nombres diferente?
- 27. ¿Hacer una clase de amigo solo tiene acceso especial a 1 función de otra clase?
- 28. ¿Cuál es el equivalente de C# de un amigo?
- 29. Cómo llamar a una clase C++ y su método desde un archivo c
- 30. amigo clase función dentro de un espacio de nombres
Nota que, técnicamente, el estándar de C++ no define un diseño de memoria para los tipos no POD. –