具有变量类型的构造函数的参数数量可变,在 C++ 中创建变量私有成员;
我有非常繁重的任务要完成,而且我还没有找到任何足够好的解决方案。所以,这是描述: - 任务是评估多个数量可能不同的单维数组 - 好消息是可以指定数组类型
以及理想的执行方式: - 创建一个带有接受可变数量数组的构造函数的类 - 这些数组也应该用作属性(私有成员),因此可以在对象的生命周期期间对它们执行多个操作
我是如何尝试的: - 参数数量可变的构造函数成员函数(我不确定为什么这不起作用) - 带向量的构造函数应该是更好的方法,但是如何存储在单独的数组中指定类型的数组,这意味着您不能提前期望特定数组的特定数据类型 - 我尝试使用预处理器将可变数量的数组声明为私有成员,但似乎循环和其他代码在私有内部不能很好地工作:声明
任何人有任何想法吗?
I have really heavy task to achieve and I haven't found any solution good enough. So, here is the description:
- task is to evaluate multiple single dimension arrays which number can vary
- good news is that it is possible to specify types of arrays
And desirable way of doing it:
- creating a class with constructor that accepts variable number of arrays
- these arrays should be also used as properties (private members), so multiple operations can be done on(with) them during lifecycle of object
How I tried to do it:
- constructor member function with variable number of paramaters (I'm not sure why this doesn't work)
- constructor with vector should be better way, but how to store arrays that type is specified in separate array, meaning you can't expect certain datatype for certain array in advance
- I tried to declare variable number of arrays as private members with preprocessor, but it seems loops and other code do not work well inside private: declaration
Any idea from anybody?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
内部向量可以具有不同的大小,但必须具有相同的类型。
您可以使用具有可变数量参数的函数来创建一个类,看看 boost::bind 是如何工作的,它需要许多不同的参数列表。
boost mpl 可能会回答您想要做的事情,尽管还不清楚。
the inner vectors can be of different sizes but must be of the same type.
You can use a function with variable number of parameters that creates a class, look at how boost::bind works, that takes lots of different parameter lists.
boost mpl may answer what you are trying to do, although it is rather unclear.
为什么不使用简单的参数化类?
如果您的编译器支持 C++0x,您还可以对参数数量可变的构造函数使用初始值设定项列表。
构造函数现在接受可变数量的数组。
Why not use a simple parametrized class ?
If your compiler support C++0x you can also use initializer list for constructors with variable number of paramaters.
The constructor now accepts variable number of arrays.