Eu estava lendo isso e, infelizmente, não conseguia entender em profundidade por que o compilador não permite a conversão de Derived ** para Base **. Também vi isso, que não dá mais informações do que o link do parashift.com. EDITAR: Vamos analisar este código linha por linha: Car car; Car* carPtr = &car; Car** carPtrPtr […]
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’?
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 […]
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 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 […]
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?
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 #.
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? […]
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?
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 […]