在试图让访问存储类更容易一点之后,我最终陷入了一种我没有太多知识的情况。而且,找到那些试图与我做同样事情的人并不容易。C++数组下标操作模板
我想要做的是有一个类在内部存储字符串值作为字符串,但允许从用户端简单的类型转换。我计划做的是使用数组下标运算符通过模板返回它们指定的类型。虽然,这听起来比它在实践中的作用好很多。下面是我正在做的一个简单的例子,让你知道它应该如何工作。
class StringList
{
public:
template <typename T>
T operator[](const int i)
}
从那里,我会定义一些特定的模板,如果需要任何用户可以很容易地定义更多。但是,最大的问题是,我不知道如何用模板调用下标操作符。起初我假定以下(显然不正确),因为它与调用模板方法的标准方式相似。
StringList list;
T var = list<T>[0];
有谁知道调用下标操作符作为模板的正确方法?或者,我应该避免这样做,并使用命名方法?
为了达到这个目的,我会提醒注意不要重载'operator []',因为重载操作符最适合用于语法上有意义的操作。你通常不会写'list [0]'这样的东西,我认为额外的智力开销并不值得。为什么不制作一个模板'get'方法并调用'list.get (0)'? –
templatetypedef
2012-03-31 17:12:40
@templatetypedef我完全同意。考虑到我甚至不知道你会如何编写这样的模板,我很可能会坚持一个像get这样的命名函数。但是,我很想知道它是如何写的,无论我是否需要使用它。 – TheCodeBroski 2012-03-31 17:18:31