Olá Vinicius!
Ótima pergunta! Vou te explicar a diferença entre as duas sintaxes de inicialização de classes em C++.
Na primeira sintaxe que você mencionou, Conta umaConta("123", "Vinicius", "123.456.789-10"), estamos utilizando a inicialização direta. Nesse caso, estamos criando um objeto chamado umaConta e passando os valores "123", "Vinicius" e "123.456.789-10" diretamente para o construtor da classe Conta. Essa é uma forma mais curta e direta de inicializar o objeto.
Já na segunda sintaxe, Conta umaConta = Conta("123", "Vinicius", "123.456.789-10"), estamos utilizando a inicialização por cópia. Nesse caso, estamos criando um objeto temporário Conta("123", "Vinicius", "123.456.789-10") e, em seguida, copiando esse objeto para o objeto umaConta. Essa forma de inicialização é um pouco mais verbosa, mas pode ser útil em alguns casos, como quando precisamos fazer alguma modificação no objeto temporário antes de copiá-lo para o objeto final.
Ambas as formas de inicialização são válidas e funcionam corretamente. A escolha entre elas vai depender do seu estilo de programação e das necessidades do seu código.
Espero ter ajudado a esclarecer sua dúvida! Se tiver mais alguma pergunta, é só me perguntar. Bons estudos!