Queremos compartirte la mejor información que descubrimos por todo internet. Nuestro deseo es que te resulte útil y si deseas comentarnos algo que nos pueda ayudar a perfeccionar nuestra información hazlo libremente.
Solución:
Probablemente quisiste decir:
c_info[i].hoursWorked;
ya que c_info
es un arrayhaciendo c_info[i]
accederás a la i
-ésima instancia (objeto) de Employee
clase en c_info
arrayy luego obtener hoursWorked
a través de .
operador.
Ahora puede ver claramente que su variante simplemente no tiene sentido, ya que hoursWorked
es solo un tipo integral y no un arrayy por lo tanto no puede aplicar []
operador a ello.
c_info
es un puntero a un empleado. Puede asignar un solo objeto asignado a dicho puntero o, en su caso, varios (new
con el array sintaxis). Por lo que apunta a un array de los empleados.
Quitaste la referencia de ese puntero. Ya que apunta a un array de (múltiples) empleados, también apunta a la primera entrada. Luego accede a una variable miembro entera, que aún es posible. Pero luego intentas usar el array operador de subíndice ([]
) en un valor entero, lo cual no es posible.
Probablemente quiso acceder a la variable miembro de la i
-ésima entrada de su asignación array. Así que tienes que darle la vuelta a esto: primero usa el array operador de subíndice, luego acceda al miembro en ese Empleado en particular.
c_info[i]
en palabras de bajo nivel significa: toma el puntero c_info
agregar i
veces el tamaño del tipo al que apunta (por lo que apunta al i
-ésima entrada) y desreferenciar esa dirección. Esto significa que c_info[i]
en realidad es el empleado en el i
-ésimo índice (pero no un puntero).
Entonces desea acceder a un miembro de ese empleado. Si todavía fuera un puntero, tendría que usar el operador de flecha, pero como usó el array operador de subíndice ([i]
), ya lo has desreferenciado, tu el operador punto es el correcto:
cin >> c_info[i].hoursWorked;
Nos puedes añadir valor a nuestro contenido informacional colaborando tu experiencia en las ilustraciones.