¿Hay algún problema con la asignación de espacio para tipos de cadenas?
cadena a;
En este momento, la capacidad de la cadena a también es 0, que se puede obtener a través de a.capacity (),
2:
string b[2]={"aaa", "aa"};
b[0], b[1] ocupan el mismo espacio y todos son objetos de la clase cadena. Todos son objetos de la clase de cadena, y la clase de cadena solo asigna espacio para miembros no estáticos, variables heredadas y punteros a tablas de funciones virtuales en la clase.
Esto se puede hacer mediante
cout lt;lt; sizeof(b[0]) lt;lt;endl;
cout lt;lt; (b [1]) lt;lt;endl;
para verificar. Si desea obtener una imagen completa, puede leer el código fuente de la cadena stl de la primera pregunta.
Para la segunda pregunta, puede consultar lt;lt;Búsqueda profunda en el modelo de objetos C
La primera pregunta es sobre la profundidad del modelo de objetos.