Articles of c ++ c ++ faq

Como evito que uma class seja alocada através do operador ‘new’? (Eu gostaria de garantir que minha class RAII esteja sempre alocada na pilha.)

Eu gostaria de garantir que minha class RAII esteja sempre alocada na pilha. Como evito que uma class seja alocada através do operador ‘new’?

Justificativa de impor alguns operadores a serem membros

Existem 4 operadores em C ++ que podem ser sobrecarregados, mas não podem ser sobrecarregados como funções independentes (também conhecidas como não-membros, independentes). Esses operadores são: operator = operator () operator -> operator [] Este tópico explica perfeitamente a lógica por trás da proibição do operator = ser uma function não-membro. Alguma idéia sobre os […]

Por que os membros da minha estrutura não foram inicializados corretamente usando `{}`?

Eu tinha o seguinte código: #include struct T { int a, b, c; }; int main() { T t = {0}; std::cout << ta << ',' << tb << ',' << tc << '\n'; } Saída : 0,0,0 Depois de muitos anos desse código funcionando alegremente em um ambiente de produção crítico, atendendo a uma […]

Por que um replaceia novos operadores padrão e excluir?

Por que um replaceia o operador padrão como new e delete com um new personalizado e delete operadores? Esta é a continuação do Overloading new e delete no imensamente iluminado C ++ FAQ: Sobrecarga do operador. Uma input de acompanhamento para esta FAQ é: Como devo escrever o padrão ISO C ++ em conformidade com […]

Semântica de bandeiras em basic_ios

Eu me vejo repetidamente perplexo com os rdstate() – good() , bad() , eof() , fail() – e como eles são expressos em basic_ios::operator! , operator bool e operator void* . Alguém poderia me tirar da minha miséria e explicar isso para que eu nunca tenha que pensar duas vezes de novo?

Converter string para int com bool / fail em C ++

Eu tenho um std::string que poderia ser uma string ou poderia ser um valor (como 0 ). Qual é a melhor ou mais fácil maneira de converter o std::string para int com a capacidade de falhar? Eu quero uma versão em C ++ do Int32.TryParse do c #.

Sobrecarregando operadores de access a membros ->,. * (C ++)

Eu entendo a maioria das sobrecargas de operadores, com exceção dos operadores de access a membros -> .* , ->* etc. Em particular, o que é passado para essas funções do operador e o que deve ser retornado? Como o operador funciona (por exemplo, operator->(…) ) sabe a qual membro está sendo referenciado? Pode saber? […]

Por que vejo valores estranhos ao imprimir variables ​​não inicializadas?

No código a seguir, a variável não possui valor inicial e imprimiu essa variável. int var; cout << var << endl; produção: 2514932 double var; cout << var << endl; produção: 1.23769e-307 Eu não entendo esses números de saída. Alguém pode explicar isso para mim?

Quais são os novos resources do C ++ 17?

O C ++ 17 agora está completo, portanto, é improvável que ocorram grandes mudanças. Foram apresentadas centenas de propostas para o C ++ 17. Quais desses resources foram adicionados ao C ++ em C ++ 17? Ao usar um compilador C ++ que suporte “C ++ 1z”, quais desses resources estarão disponíveis quando o compilador […]

Pilha apropriada e uso de heap em C ++?

Eu tenho programado por um tempo, mas tem sido principalmente Java e C #. Eu nunca tive que gerenciar a memory sozinho. Eu comecei recentemente a programar em C ++ e estou um pouco confuso sobre quando devo armazenar as coisas na pilha e quando armazená-las na pilha. Meu entendimento é que as variables ​​que […]