在考虑一个奇怪问题的“创造性”(即奇怪)解决方案时,一个特殊的想法引发了我的好奇心。这不是我可能会使用的想法,但我仍然想知道根据标准它是否合法。
一个简单的例子是......
class base_t
{
private:
// stuff
public:
// more stuff
class derived_t : public base_t // <--- weirdness here
{
// ...
};
};
怪异的一部分——因为derived_t
继承自base_t
which contains derived_t
,所以看起来像是derived_t
contains 本身。
那么 - 这是一种类似于奇怪重复的模板模式的有效但奇怪和可怕的东西,还是非法的?
编辑- 我也许应该提到我想到这个的原因是试图避免一些命名空间污染。拥有一个类作为成员可以避免引入另一个全局类,但是第二个类需要与第一个类共享很多。
如果它只是一对类,那将不是问题,但这是针对代码生成器的。