我最近遇到了一个构造函数,它看起来像这样:
classname::classname(index_t m, index_t n) : m(m), n(n) {...}
但是,我不确定: m(m), n(n)
是做什么的。我认为它将参数index_t m, index_t n
分配给相同类型和名称的局部变量——这种观察结果正确吗?
谢谢!
它被称为初始化列表,用于初始化非静态成员。如果你想避免成员的双重初始化,你通常会使用它们(如果你在主体构造函数中分配成员,那么成员已经存在,所以你正在"加倍"初始化过程(。
您可以在参考资料中找到更多信息:https://en.cppreference.com/w/cpp/language/constructor