我有以下情况:命名空间级别的访问
namespace MyFramework {
class A {
void some_function_I_want_B_to_use() {}
};
class B {
B() {
some_function_I_want_B_to_use() {}
}
};
}
,我希望some_function_I_want_B_to_use
到不是MyFramework
命名空间的外部可见的,但我不希望它是内部MyFramework的任何人都可见(或者,对于B类也是可见的)。我有这样的一些方法,是唯一的方法来隐藏他们从MyFramework的公共API,使MyFramework
朋友的所有类?我也在考虑将所有“低级”类放在B的内部,但我不想沿着这条路线走下去,直到我确信它能够完成从B内部访问A的所有方法但不能从在MyFramework之外。
重申一下,我有一个全部在一个命名空间内创建的框架,并且每个类都有一些对使用框架的公众有用的方法。但是,每个类也有一些方法会使公共API复杂化,但是框架需要正常运行。
什么是 “看得见” 是什么意思?如果函数的名字可以在头文件中找到,但函数是'private',它是否可见?没有(为我的目的) – anatolyg 2013-03-19 22:53:55
。我希望能够列出“公共”API是唯一的公共方法。例如。有3种公共方法使得类的使用清晰,但有20多种方法使得类的使用更不明显 – Hamy 2013-03-19 22:55:50
做some_function_I_want_B_to_use需要是A的一种方法吗?或者它可能是MyFramework中的命名空间函数? – EHuhtala 2013-03-19 23:02:08