【发布时间】:2012-10-22 00:26:48
【问题描述】:
我正在尝试理解 C++ 中的模板类。首先,我想了解一下这条线是什么意思:
template <typename T, typename Ord = columns, typename All = abc::allocator<T,16> >
class matrix
其中 columns 和 allocator 分别是一个结构和一个定义在别处的类(命名空间 abc 中的第二个)。令我困扰的是它似乎有一个已经初始化的类型名。这是什么意思?当我想使用这个模板时,我是否也应该初始化 Ord 和 All 的类型名?
此外,还有这个唯一的构造函数:
explicit matrix(unsigned int rows = 0, unsigned int cols = 0, T init = T())
但它似乎已经被初始化了。 init 应该是什么意思?
我向您保证,我查看了所有代码,但没有什么可以帮助您更好地理解。感谢您的关注。
编辑:谢谢大家的回答。稍微放心(我是 C++ 的菜鸟):
int const& operator() operator()(unsigned int i, unsigned int j) const
这个方法意味着,当我们初始化类 foo 时,我们可以通过 foo()(1,2) 调用它,其中 i=1 和 j=2。我对吗?而这两个“const”指的是什么?
再次感谢您!
【问题讨论】:
标签: c++ class templates explicit typename