Última atualização:2026-10-12
Visão geral do projeto¶
1. Apresentação do projeto¶
- Nome em chinês: C++那些事
- Nome em inglês: Stories About C Plus Plus or CPlusPlusThings
C++ 那些事 é um projeto de aprendizado em código aberto voltado para iniciantes e para desenvolvedores de C++ em nível avançado. O projeto tem como objetivo ajudar os estudantes a evoluir dos fundamentos de C++ até o nível avançado, abrangendo desde sintaxe básica, programação orientada a objetos, programação genérica (templates) e uso da STL até temas avançados como multithreading e concorrência, gerenciamento de memória e otimização de desempenho. Além disso, o projeto também analisa em profundidade o código-fonte de algumas bibliotecas e frameworks clássicos de código aberto, ajudando os desenvolvedores a compreender melhor a aplicação de C++ em projetos reais.
2. Objetivos do projeto¶
- Do básico ao avançado: oferecer aos iniciantes uma trilha de aprendizado sistematizada, ajudando-os a dominar gradualmente, a partir do zero, os conceitos centrais e os recursos avançados de C++.
- Preparação para entrevistas: fornecer aos candidatos a análise de perguntas comuns de entrevistas de C++ e exercícios práticos, ajudando-os a se destacar nas entrevistas.
- Análise de código-fonte: por meio da análise do código-fonte de projetos clássicos de código aberto, ajudar os desenvolvedores a compreender em profundidade os padrões de projeto e os princípios de implementação de C++.
- Multithreading e concorrência: explorar em profundidade a programação multithread e o controle de concorrência em C++, ajudando os desenvolvedores a escrever programas concorrentes eficientes e seguros.
- Otimização de desempenho: apresentar técnicas de otimização de desempenho em C++, ajudando os desenvolvedores a escrever código eficiente.
3. Conteúdo do projeto¶
O projeto C++ 那些事 tem um conteúdo rico e abrange os diversos aspectos de C++, incluindo principalmente os seguintes módulos:
-
Fundamentos e aprofundamento
- Palavras-chave e recursos: análise detalhada de palavras-chave como
const,static,this,inline,sizeof,virtual,volatile,explicit,friend,using,::,enum,decltype, entre outras. - Funções e ponteiros: ponteiros de função, funções virtuais puras e classes abstratas,
vptr_vtable, etc. - Estruturas de dados:
struct,union, campos de bits, diferenças entre referências e ponteiros, etc. - Polimorfismo de C++ em C: implementar as características de polimorfismo de C++ usando a linguagem C.
- Macros e asserções: definição e uso de macros, cenários de uso de
assert.
- Palavras-chave e recursos: análise detalhada de palavras-chave como
-
Série prática
- Treino intensivo de 10 dias: elevar rapidamente a capacidade de programação em C++ por meio de uma prática intensiva ao longo de 10 dias.
- Exercícios práticos focados: treinamento prático voltado aos pontos-chave e às dificuldades de C++, consolidando o conhecimento adquirido.
-
Análise do código-fonte da STL
- Contêineres: análise do código-fonte de contêineres como
array,deque,queue,stack,list,vector,rb_tree,set,multiset,map,multimap,hashtable,unordered_map, entre outros. - Iteradores e traits:
iterator,traits,typename, etc. - Otimização EBO: a técnica de otimização de classe base vazia (EBO) no design da STL.
- Contêineres: análise do código-fonte de contêineres como
-
Novos recursos do C++2.0
-
Tópicos extras
- Aprofundamento em mecanismos da linguagem: mutable, a "família" do const, ABI, recursão de cauda, etc. (veja o menu «Fundamentos e aprofundamento → Aprofundamento em mecanismos da linguagem»).
- Memória e depuração, Avaliação de desempenho, Projetos práticos, Leitura e dicas: seções independentes do menu, com artigos práticos sobre AddressSanitizer, Benchmark, pybind11, gRPC, entre outros.
-
Padrões de projeto
- Padrões de projeto comuns: aplicações em C++ de padrões como Singleton, Factory e Observer.
-
Programação concorrente
- Multithreading e multiprocessos: técnicas de programação multithread como
std::thread,std::async,std::mutex,std::condition_variable, entre outras. - C++ Concurrency in Action: exploração aprofundada dos modelos e das práticas de programação concorrente em C++.
- Multithreading e multiprocessos: técnicas de programação multithread como
-
Idiomatismos de C++
- Estilo de programação e idiomatismos: discussão sobre os estilos de programação e os idiomatismos comuns em C++, ajudando os desenvolvedores a escrever código mais elegante.
-
Cursos de aprendizado
- 《现代 C++ 实战 30 讲》 da GeekTime: recurso de estudo recomendado para ajudar os desenvolvedores a aprender C++ moderno de forma sistemática.
-
Ferramentas
- Ferramentas de depuração e de saída: uso de ferramentas de depuração como
dbg-macroerr, entre outras. - Ferramentas de saída rápida de contêineres: ferramentas que simplificam a exibição de contêineres.
- Observando o processo de compilação: observar as mudanças no processo de compilação do código C++ por meio de ferramentas.
- Ferramentas de depuração e de saída: uso de ferramentas de depuração como
4. Diferenciais do projeto¶
- Trilha de aprendizado sistematizada: do básico ao avançado, com conteúdo em progressão gradual, adequado a estudantes de diferentes níveis.
- Combinação de teoria e prática: além da explicação teórica, há uma grande quantidade de exemplos de código e projetos práticos.
- Análise profunda de código-fonte: por meio da análise do código-fonte de projetos clássicos de código aberto, ajuda os desenvolvedores a compreender profundamente o design e a implementação de C++.
- Multithreading e concorrência: exploração aprofundada da programação concorrente em C++, ajudando os desenvolvedores a escrever programas concorrentes eficientes e seguros.
- Foco em entrevistas: análise de perguntas comuns de entrevistas, ajudando os candidatos a se preparar melhor.
5. Recursos do projeto¶
- Site de aprendizado online: C++那些事
- Conta oficial do WeChat: 光城
- Vídeos no BiliBili: 未来的光城, com o conteúdo do projeto publicado também no BiliBili em formato de vídeo, para facilitar o acompanhamento dos estudantes.
6. Como participar¶
C++那些事 é um projeto de código aberto, e a participação de todos os desenvolvedores é bem-vinda. Você pode participar das seguintes formas:
- Star e Fork: se o projeto for útil para você, sinta-se à vontade para dar Star e Fork no GitHub.
- Envio de PRs: se você tem bom conteúdo ou sugestões de melhoria, envie um Pull Request.
- Feedback e sugestões: se encontrar problemas durante o uso ou tiver qualquer sugestão, abra uma issue no repositório do projeto.
7. Planejamento futuro do projeto¶
- Ampliar os tópicos avançados: como os novos recursos do C++20, metaprogramação, computação em tempo de compilação, etc.
- Adicionar mais projetos práticos: por meio de mais projetos práticos, ajudar os desenvolvedores a aplicar o conhecimento adquirido no desenvolvimento real.
- Construção da comunidade: estabelecer uma comunidade mais ativa, incentivando a troca e o compartilhamento entre desenvolvedores.
8. Conclusão¶
C++那些事 é um projeto de código aberto dedicado a ajudar estudantes de C++ a ir do nível básico ao avançado. Seja você um iniciante ou um desenvolvedor com alguma experiência, aqui encontrará recursos de estudo adequados ao seu perfil. Esperamos que, por meio deste projeto, mais pessoas consigam dominar C++ e usá-lo com desenvoltura no desenvolvimento real.
Desenvolvedores são bem-vindos a dar Star, Fork e enviar PRs para, juntos, impulsionar o desenvolvimento da comunidade C++!
9. Sobre o autor¶
-
WeChat: pesquisar
gcxzhang -
Conta oficial do WeChat
![]() Planeta do Conhecimento |
![]() Conta oficial do WeChat |
|---|
- Apoie o projeto
![]() Alipay |
![]() |
|---|



