Como te han dicho, tanto la variable <nombrecliente> de <pedido> como <direccion> de <servicio> deberían ser arrays unidimensionales ya que solo vas a guardar una cadena de caracteres en cada uno de ellos.
Además dentro de <servicio> estás declarando dos <pedido> cuando creo que sólo quieres declarar uno. Un objeto de tipo <pedido> lleva internamente dos variables: el nombre del cliente <nombrecliente> y el número del pédido <numpedido>. No tiene sentido que vuelvas a crear dos objetos <pedido> en <servicio>. Y si era eso lo que querías hacer y en cada <servicio> guardar dos <pedidos>, te recomiendo cambiarles el nombre porque no se corresponden con la realidad.
Aparte de un par de <fflush(stdin)> que no se recomiendan ya que la función <fflush()> se ha diseñado para limpiar el buffer de salida <stdout>. El comportamiento con el buffer de entrada <stdin> no está definido por lo que puede ser indeterminado.
PD: Coloca tu código entre etiquetas de código GeSHi (hay un menú desplegable encima del cuadro de texto para seleccionar el lenguaje apropiado, C++ en este caso) para recibir más ayuda. Ya que la falta de etiquetas provoca una mala interpretación del código además de que es más complicado de ver y corregir.
Suerte