Недавно я увидел пример следующего вида:
#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
? Не имеет смысла для меня. Возможно, кто-то мог просветить меня. И, между прочим, есть ли какие-либо другие эзотерические языковые функции, подобные этому, вы никогда не найдете в обычной книге на С++?