Realmente no indicas el código completo como lo usas .. así que estamos en las mismas.
Por otro lado ... si hicistes un urlencode() .. ahora tocará un urldecode() a la hora de recojer esos datos en el script de proceso.
Código PHP:
$_SESSION["ocarrito"]->introduce_producto(urldecode($_GET["id"]), $_GET["nombre"], $_GET["precio"]);
Lo mismo con otras variables.
Analiza que tiene tus array's .. usa print_r() sobre las variables que manejas (arrays).
El objeto "carrito" maneja sólo un array (bueno, varios para cada item del producto).
No entiendo por qué la classe tiene la definición:
class carrito
class carrito
Segúro que el código del mismo es el que tienes? .. no se ven métodos para extraer lo que el carrito almacena.
Muevo tu pregunta al foro de Programación orientada a objetos por si hay más detalles, pero adjunta el código completo que uses .. tanto del objeto (classe) como de como lo usas.
Un saludo,