Hiding functions from children
<p>I would like some children (inheriting classes) to not see certain work functions that are in the Parent class.  I understand that making these private would mean that the children cannot use these functions but the thing is that they would see them. I am trying to avoid the issue of having a bunch of "junk" show up in auto-complete. </p>

<p>With the above in mind, I have come up with an idea.  Code below.  The thing is that I am not entirely sure what the nature of secretFunc is.  Is this a global function or does it belong to the Parent class in some way?  It is not declared in the header, it is just defined in the cpp.  The idea is that I could have some work functions like this in the Parent and then these would be hidden from the Child class.  Is a more elite way to do this?  Even if there is, I would still like to understand the nature of secretFunc.</p>

<pre><code>#ifndef PARENT_H
#define PARENT_H

class Parent
{
public:
    Parent();
    ~Parent();

private:
    void privateFunc();
protected:
    void protectedFunc();
public:
    void publicFunc();

};

#endif
</code></pre>

<hr>

<pre><code>#include "Parent.h"

//What is the nature of this function???
void secretFunc()
{
}

UnitTest::UnitTest()
{
}

UnitTest::~UnitTest()
{
}

void UnitTest::privateFunc()
{
}

void UnitTest::protectedFunc()
{
}

void UnitTest::publicFunc()
{
}
</code></pre>

<hr>

<pre><code>#ifndef CHILD_H
#define CHILD_H

#include "Parent.h"

class Child : public Parent
{
public:
    Child();
    ~Child();
};

#endif
</code></pre>

<hr>

<pre><code>#include "Child.h"

UnitTest::Child()
{
}

UnitTest::~Child()
{
}

//Auto complete can see private Parent functions!
//Of course, child can't use them, but it can see them.
//I wish to hide these private functions from child.

//Auto complete can see and can also use protected Parent funcitons.
//As should be...

//Auto complete can see and can also use public Parent funcitons.
//As should be...

//secetFunc should be invisible.
</code></pre>

<hr>
