假设我有一个类
T
,带有构造函数 T(int b)
,子类 Tchild
带有类似的构造函数 Tchild(int b)
。
如何将
decltype
与参数一起使用?
例如:
假设我不知道接下来的两种类型:
T abc{};
Tchild def{};
std::vector<*T> vec;
vec.push_back(new decltype(Tchild));
我怎样才能用这个构造函数制作
new decltype
-> Tchild(int b)
?
我是新手,我的问题可能很愚蠢。我试图找到答案,但找不到,也许我问了一个坏问题。
您说
T
和 Tchild
具有采用 int
参数的构造函数。所以你需要为它们传入 int
值,例如:
T abc{1};
Tchild def{2};
T abc{};
和 Tchild def{};
不会编译,除非这些类还定义了 默认构造函数,而您没有描述。
无论如何,
new decltype(Tchild)
没有任何意义,因为Tchild
已经是一种类型,所以你可以只写new Tchild
。您的意思可能是 new decltype(def)
。
但是,如果你想调用
Tchild(int b)
,你仍然需要提供构造函数参数值,例如:
vec.push_back(new decltype(def){3});