Em C , construtores são usados para inicializar objetos de uma classe. No entanto, no trecho de código fornecido, o construtor não está sendo invocado, resultando em um comportamento inesperado.
A linha problemática:
Class object();
na verdade não invoca o construtor para a classe Class. Em vez disso, ele declara uma função que retorna um objeto Class. Para chamar corretamente o construtor e criar um objeto, um ponto e vírgula (;) deve ser anexado à linha:
Class object;
O trecho de código inicial destaca um problema conhecido como a "análise mais incômoda" em C. Ao encontrar a linha:
Class object();
o analisador C a interpreta ambiguamente como uma declaração de função ou uma chamada de função com uma lista de argumentos vazia. Essa ambigüidade geralmente leva à confusão e a resultados inesperados.
Para invocar o construtor e criar um objeto, o código deve ser atualizado para:
#includeusing namespace std; class Class { Class() { cout Execute o código corrigido para observar a saída esperada:
default constructor called destructor called
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3