Normally a list uses two classes: one for the list itself and one for a node within the list. You're using one class to represent both, which is a little unusual.
temp should be a local variable declared whereever you need it, not a member of the Node class.
Node's constructor should set the next pointer to NULL. Otherwise the last item's next pointer will point off to lala land.
That said, your items are printing in reverse order because you insert the items at the beginning of the list, so they occur in the list in the reverse order from which they were inserted.