O que é essa estranha sintaxe de membro de dois-pontos (“:”) no construtor?
Recentemente eu vi um exemplo como o seguinte:
#include <iostream>
class Foo {
public:
int bar;
Foo(int num): bar(num) {};
};
int main(void) {
std::cout << Foo(42).bar << std::endl;
return 0;
}
O que isso estranho: bar(num)
significar? De alguma forma parece inicializar a variável de membro, mas eu nunca vi essa sintaxe antes. Parece uma chamada de função / construtor, mas para umaint
? Não faz sentido para mim. Talvez alguém possa me esclarecer. E, a propósito, existem outras características de linguagem esotérica como essa, você nunca encontrará em um livro comum de C ++?