Para accesar a una propiedad de tu clase es forzoso que uses $this:
Código PHP:
Ver originalfunction a() {
// mal
$num_productos += 17;
// bien
$this->num_productos += 17;
}
Lo mismo en el constructor, ahora sí usas PHP5, no debes de usar var, deberías de usar private/protected/public, y el constructor es __construct(), si usas PHP4, entonces sí debes de usar var, y el constructor Carrito().
Saludos.