我正在尝试理解 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”指的是什么?
再次感谢你!