No. It doesn't. Anything would do. Generally, the practice is to keep class data members as private and the class member functions as public. Very few situations arise when you need to make your member functions private!
Private functions will not be used outside the class and is more of an implementation detail. When you design your class you are more interested about the public functions because that is the interface of the class. When you implement the member functions you might notice you could benefit from an extra function but you don't want the function to be used from outside the class so you make it private.
This is my .h file and when I try to compile it in this format I get a error at void inorder(treeN *p). It states treeN has not been declare, however if I put private first it runs perfectly. An ideas why or is it my compiler?
The error is not cuz of declaring public first. The compiler reads the code line by line. When it encounter the statement void inorder(treeN *p);
it flashes an error because treeN is not declared till that time.Just like an undeclared variable cannot be used,the pointer to treeN cannot be used until treeN is declared