gpt4 book ai didi

c++ - 如何转发声明从转发声明的模板基类派生的类?

转载 作者:行者123 更新时间:2023-11-30 01:26:38 24 4
gpt4 key购买 nike

我正在尝试转发声明一个派生自模板类的类,该模板类也必须转发声明。

这是类的一个例子:

class TType {
public:
TType() { }
};

template<typename T>
class Base {
public:
Base() { }
};

class Derived : public Base<TType> {
public:
Derived() { }
};

这是对我需要什么的失败猜测:

class TType;
template<typename T> class Base;
class Derived : public Base<TType>; // This fails
Derived* pDerived;

最佳答案

只需向前声明类名:

class Derived;

您不能在其声明中包含有关类的更多信息;基类、成员等只能在类定义中声明。

此前向声明可用于做各种事情,包括声明指针或引用(例如您示例中的 pDerived),以及声明带有 Derived 的函数作为参数或返回类型。如果您需要做任何需要知道类的大小、基类或成员的事情,那么您将需要完整的定义。

关于c++ - 如何转发声明从转发声明的模板基类派生的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10032275/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com