我认为这是完全不可能的,但如果什么。 是否有可能以某种方式获得的静态成员函数嵌套类,在C ++中的任何版本的类型?
class Impossible {
public:
static void Fun()
{
typedef Impossible EnclosingClass;
// now do something with EnclosingClass ...
}
}
有没有办法让封闭类(类型Impossible
不会在功能编写类的名称在这种情况下)?
为什么我想这样做的原因是为了避免重复功能的类名。 它可以很容易地导致很难找到复制粘贴错误,如果这样的事情发生了:
class SomeOther { // another class, with the same interface as Impossible
public:
static void Fun()
{
typedef Impossible EnclosingClass;
// whoops, copy-pasted, forgot to change "Impossible" to "SomeOther"
// now do something with EnclosingClass ...
}
}
有没有阻止这种事情发生的好办法? 我能想象感人的东西,被宣布封闭类私有的,但会逼着我写额外的代码(如我现在的设计不包含任何固有的私有成员,全部是公开的)。