【发布时间】:2020-06-03 18:19:28
【问题描述】:
我必须编写一个简单的代码,它将一个字符作为输入或一个带有整数的字符串。然后根据输入生成一个标准向量。如果文本说 int 我有一个 int 向量。 唯一的问题是,即使是空的,我也不想为每个变量类型声明一个向量,并且我想让它可扩展,所以如果有一天我想在其中放入一个结构或其他东西,我可以。
dvec::dvec( char t){
if ( t=='i')
vector<int> a;
else if( t=='f')
vector<float> a;
}
【问题讨论】:
-
为什么不使用模板?
-
@yaodav 你仍然会在使用你的对象时遇到麻烦,它的类型取决于运行时信息。你需要使用
variant,模板所有使用它的东西,或者使用其他方案来抽象出具体类型。 -
我们可能必须知道如何使用这个类的上下文。如果有关类型的信息仅在运行时已知还是在编译时已知。
char t参数建议运行时,但我不确定是否需要。 -
*我必须写一个简单的代码..." 我不认为你可以为此编写一个简单的代码。
-
你也可以使用(如果你使用c++17)std::any或std::variant,但是当你尝试使用变量时你需要知道类型
标签: c++ user-defined-types user-defined