【发布时间】:2016-01-02 09:05:49
【问题描述】:
我创建的命名空间中有一些函数在整个程序中使用。
在头文件中:
namespace NQueens
{
static int heur = 0;
int CalcHeuristic(char** state, int size);
void CalcHorzH(char ** state, int &heuristic, int size);
void CalcColH(char ** state, int &heuristic, int size);
void CalcDiagH(char ** state, int &heuristic, int size);
int calcCollisions(int queensPerRow, int size);
}
一切正常。但是,实际上从我的外部程序代码中调用的唯一函数是 CalcHeuristic(char** state, int size) 函数。
该函数然后调用其他函数本身。
由于这些不属于一个类,我的编译器不会让我将其他函数声明为private。有没有办法做到这一点?我应该担心吗?
【问题讨论】:
-
你想要一些神秘的东西。使用类 + 静态方法。
-
我确实在我的代码中使用类和静态方法,我喜欢在某些情况下这样做,但这不是其中一种情况。
-
请通过投票/接受答案来表达您的感激之情,而不是通过编辑“谢谢!”消息。
-
“我应该担心吗?” - 这是这个问题中最重要的部分。但我们无法回答。由您决定哪些事物属于软件组件的接口,哪些事物属于其实现。
-
作为任何面向对象设计的一般经验法则,除了预期的功能外,您不应将功能暴露给外界。
标签: c++