Each 'if' statement in an else/if chain has its own condition. You can use whatever variables of whatever type in the 2nd condition ... it doesn't matter what type of variables were used in the first condition.
But that's kind of a non-question... and I don't think it's the answer you're looking for. I suspect you are asking if you can do something like this:
1 2 3 4 5 6 7 8 9
cin >> foo;
if( foo_is_an_int )
// foo is not an int
The answer to that is "no, not with ints". An int is always going to be an int.. even if the user does not input an integer. If they do not, the cin>>foo line will simply fail and 'foo' will not have anything meaningful.
Instead, if you want to catch any and all input data, you'll have to read it as a string:
1 2 3 4 5 6 7 8 9 10 11
cin >> foo;
if( doesStringContainNumericalData( foo ) )
// user input something that was not numerical
This you certainly CAN do.
@Lumpkin: I don't see what operator overloading has to do with this. And even if it was relevant, your answer is extremely vague as operator overloading is a pretty broad topic and this was a pretty specific question.