I'm not sure what the question is.
You declare a pointer to an object of the appropriate type on line 17, in most linked lists I've seen, it is usually named "next" but other than that I don't see a problem.
You do appear to be declaring one on line 23 as well, or was that supposed to be an accessor?
If is were my implementation the private member would be ProcessedPayroll* pNext; and the accessor would be ProcessedPayroll * getNext() and the mutator void setNext(ProcessedPayroll * next)
For the rest of the linked list, you need to have a "head" pointer that either points to NULL if the list is empty, or the first object in the list. The last object on the list will have its "next" pointer point to NULL.
How things are added to the linked list depends on the importance of ordering to the list. For a standard linked list, it is easiest to add elements at the head, but then when the data is accessed in the normal fashion, the data is in the opposite order from how it was added. (The last added would be the first seen.)
If the elements are to be added to the end of the linked list to maintain the order, you must either iterate to the end of the list every time you want to add one, or maintain a pointer to the "tail" (last object in the list -- NULL if the list is empty).
I hope this was useful or that you've already solved it yourself :)