我在C++中有一个类和一个嵌套类,它们都是泛型类。
#define GENERIC template<typename T>
GENERIC
class Class1 final{
private:
GENERIC
class Class2 final{
private:
T class2Field{};
};
T class1Field{};
};
我想传递类型参数T
,它在示例化Class1
时传递给Class1
,一直传递到Class 2
。如何实现?
2条答案
按热度按时间gpnt7bae1#
如何在C++中将泛型参数传递给嵌套泛型类
由于嵌套类也是模板化的,因此可以使用默认参数,如下所示:
现在
Class1<int>::Class2::class2Field
的类型将为int
。von4xj4u2#
Class2
可以看到Class1
的声明,因此将使用Class1
的T
在没有声明模板化类时:因此
Class1<int>::Class2::class2Field
将是int
类型。如果您希望
Class2
仍然是模板类,请参见this answer。最好不要使用宏:是的。