If you use "this->function()", it's exactly the same thing as just saying "function()" (assuming you don't have any other symbols called "function"). It calls the function from the derived class's point of view. So if the derived class has defined the function, it will use that. Otherwise it will use a base class implementation, if there is one (inheritance in action).
If you use "Class::", you're telling the compiler to use the function from a specific base class. (It's different from calling a static function.)
[edit] I'm not sure another example is really necessary, but I wrote it, so I may as well post it.
Code:
#include <iostream>
class Greeter {
public:
Greeter() {}
virtual void greet() { std::cout << "Greetings.\n"; }
};
class FriendlyGreeter : public Greeter {
public:
virtual void greet() {
std::cout << "Ah, my friend! ";
Greeter::greet();
}
};
int main() {
FriendlyGreeter().greet();
return 0;
}
[/edit]