Los string si los puedes igualar a cadenas...porque son clases y tiene el operador de asignacion sobrecargado. Que significa esto....en pocas palabas cada vez que detecta esto
string nombre = "hola";
el compilador se da cuenta y lo reemplaza por una funcion...para simplificar las cossas imaginate que lo reemplaza por
strcpy(nombre, "hola");
Asi tu codigo queda mucho mas lindo. Los string se definen como te los defini arriba. Ademas se pueden sumar y muchas otras funciones mas.
Aqui tienes todo lo que puedes hacer con strings:
http://www.cplusplus.com/reference/string/string/
Saludos