The KDE libraries (and some other parts as well) require that the code uses the so called d-pointer or pimpl (private implementation) idiom (see  and ). It makes it easier to keep the ABI unchanged, and it speeds up the compilation with insignificant runtime costs.
It usually goes like this - declare a Private class and a const pointer to it named d and (de)initialize it properly. Instead of having private class members, put them in that class. 
This works. But having explicit new and delete operators is generally frowned upon in the modern C++ world. It is quite easy to forget to add the delete d to the destructor. And it is nothing more than unnecessary boilerplate. The example at  improves this situation by using the QScopedPointer which automatically does the deletion for you.
With the new C++11 features (these are available since gcc 4.4), this can be made even cleaner.
No special handling of d, no new and no delete. Even if the Private class had a constructor with arguments, the implementation would be pretty:
For the implementation of d_ptr class, you can see the d_ptr.h and d_ptr_implementation.h from kactivities repo .
Now, the code is perfectly safe. If you make a mistake, it will be detected by the compiler, and will not propagate to runtime.