我希望一些孩子(继承类)看不到父类中的某些工作功能。我知道将这些设为私有意味着孩子们无法使用这些功能,但问题是他们会看到它们。我试图避免在自动完成中出现一堆“垃圾”的问题。
考虑到上述情况,我想出了一个主意。代码如下。问题是我不完全确定 secretFunc 的性质是什么。这是一个全局函数还是以某种方式属于 Parent 类?它没有在头文件中声明,它只是在 cpp 中定义。这个想法是我可以在 Parent 中拥有一些像这样的工作功能,然后这些功能将从 Child 类中隐藏起来。是一种更精英的方式来做到这一点吗?即使有,我还是想了解一下 secretFunc 的本质。
#ifndef PARENT_H
#define PARENT_H
class Parent
{
public:
Parent();
~Parent();
private:
void privateFunc();
protected:
void protectedFunc();
public:
void publicFunc();
};
#endif
#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()
{
}
#ifndef CHILD_H
#define CHILD_H
#include "Parent.h"
class Child : public Parent
{
public:
Child();
~Child();
};
#endif
#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.