最近我看到了一个类似下面的例子:
#include <iostream>
class Foo {
public:
int bar;
Foo(int num): bar(num) {};
};
int main(void) {
std::cout << Foo(42).bar << std::endl;
return 0;
}
这个奇怪 : bar(num)
是什么意思?它似乎以某种方式初始化了成员变量,但我以前从未见过这种语法。它看起来像一个函数/构造函数调用,但对于 int
?对我来说没有意义。也许有人可以启发我。而且,顺便说一句,有没有像这样的其他深奥的语言特性,你在普通的 C++ 书中找不到?
原文由 nils 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是一个 _成员初始化列表_。您应该在任何 好的 C++ 书籍 中找到有关它的信息。
在大多数情况下,您应该初始化成员初始化列表中的所有成员对象(但是,请注意 FAQ 条目末尾列出的例外情况)。
FAQ条目的要点是,