C++类中类的递归继承定义

2018-03-13  本文已影响52人  DarkBubble

C++中定义一个类型T,然后在T中定义T1/T2两个类型,要求T1/T2从T派生出来。这种情况下,必须先声明后定义。

class T
{
 public:
    struct T1;
    struct T2;
};

class T::T1 : public T
{
public:
    /* ... */
};

class T::T2 : public T
{
public:
    /* ... */
};

这对模板类也成立:

template<typename A>
class T
{
public:
    struct T1;
};

template<typename A>
class T<A>::T1 : public T<A>
{
public:
    /* ... */
};

定义递归类型可以先声明,然后再使用指针来定义一些成员,然后把递归类型的定义实体放在外部。

上一篇 下一篇

猜你喜欢

热点阅读