I think it was underscore prefixed so that it didn't "conflict" with the member variable of the same name. From what I understand that isn't really a conflict:

class Foo {
    int x,y;
    Foo(int x, int y) : x(x), y(y) {}
};

does the right thing.