// using a variable Car myCar; myCar.drive(); // using a pointer Car *myCarPointer = new Car(); myCarPointer->drive(); delete myCarPointer;
The second method is the way you would do it in C# or Java (minus the manual deletion), but both are valid in C++. The book I use (C++ Programming in Easy Steps) doesn't outline the difference other than that it looks like you can do something like this with a derived class:
BaseClass *object = new DerivedClass();
In the context of a game, when would you want to use one over the other?