雖然考慮到奇怪問題的「創造性」(即離奇)解決方案,但一個特定的想法引發了我的好奇心。這可能不是我想要使用的想法,但我仍然想知道根據標準它是否合法。成員類是否可以從它的父類繼承?
一個簡單的例子是...
class base_t
{
private:
// stuff
public:
// more stuff
class derived_t : public base_t // <--- weirdness here
{
// ...
};
};
部分古怪的 - 因爲從base_t
包含derived_t
derived_t
繼承,好像derived_t
包含本身。
所以 - 這是一個類似於curiously recurring template pattern類似的有效但奇怪而可怕的東西,還是非法?
編輯 - 我也許應該提一下,我想到這個的原因是爲了避免一些命名空間的污染。有一個班級作爲會員可以避免引入另一個全球班級,但第二班級需要分享很多。
如果它只是一對類,它不會是一個問題,但這是一個代碼生成器。
想一想。想想一個包含它自己的盒子...... –
從OOP的角度來看,這至少是沒用的...... –
@Bruno:不一定。 –