我想要一个创建数组用于测试目的的函数:
- 这个想法是让用户选择数组将包含的元素类型(int、float、double)。
- 然后它必须返回所选类型的数组并且main必须将其用作参数。我知道这是使用空指针,但如果有人能为我提供一个例子,我会很高兴。
这就是示例代码
**type** vector()
{
int t;
int op;
cout << "Size: \n";
cin >> t;
**type** * v = new **type**[t]
cout << "Select type\n";
cin >> op;
switch(op) {
case 0:
// Create the array with the selected option...
return * v;
case 1:
// Create the array with the selected option...
return * v;
default:
// Other stuff;
}
}
所以问题是我应该使用什么类型的函数,以及我应该将什么类型的动态变量声明为 v。
以及一旦正确完成后如何在其他功能上使用它。
Thanks.
简单的答案是你cannot,因为数据类型需要在编译时专门声明。
如果你可以使用boost库,
boost::variant<int,float,double> vec;
可以满足您的需求。
你不能使用union
因为std::vector
不是一个POD(普通旧数据类型)。
EDIT:
正如@Rob 指出的:
空指针需要转换为指向其他内容的指针 -
在编译时 - 在它们可以这样使用之前。所以答案是
仍然“不能”使用 void 指针来创建变量数据类型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)