Las matrices en C++ no son tipos reales, solo una representación estructurada de una serie de valores, y no punteros si lo encuentra en cualquier lugar (se degradan en punteros). No puede usarlos como usaría otros tipos, incluida la asignación. La elección fue agregar mucho soporte para matrices o mantenerlas de la manera más simple y rápida posible. Se eligió este último, que es una de las distinciones que C++ tiene de algunos otros idiomas.
Para copiar una matriz, copie cada elemento de a uno por vez.
En C++ 11, hay un contenedor STL std::array
. Fue diseñado para encajar como un conjunto simple con sobrecarga del operador, así como también relacionado con el resto del STL.
Una mejor alternativa es std::string
. Incorpora el comportamiento que desea y más, y está específicamente diseñado para contener matrices de caracteres.
"hola" es, como señala Konrad Rudolph, un const char [3]
.
En cuanto a cin
en una matriz en bruto, no es posible de forma estándar porque no hay sobrecarga para cin
con arreglos. Sin embargo, es posible crear su propia sobrecarga. Sin embargo, no estoy seguro de cómo representaría los diferentes tamaños de matrices que pasan, a menos que lo defina para un contenedor que conozca su tamaño en lugar de un conjunto sin formato.
Una alternativa aún mejor es 'std :: string'. – Cornstalks
Vaya, sí se me olvidó que era una serie de personajes^_^ – chris
bueno, gracias. Pero realmente no estoy buscando lo mejor. Solo estoy tratando de entender estos conceptos. Sé que en realidad la programación no usaría esta cadena de estilo C. –