Ícone do site Embarcadero RAD Studio, Delphi, & C++Builder Blogs

15 dicas para se graduar de C ++ em sala de aula para C ++ moderno, parte 1/3

digital particles

Você pode conhecer C ou C ++ da faculdade e querer desenvolver aplicativos, jogos e aplicativos de IA, mas não tem certeza se o que aprendeu é suficiente para ajudá-lo a alcançar seu objetivo. Como você pode mudar de C ++ de “sala de aula” para C ++ moderno?

 Hoje, codificar em qualquer linguagem de programação é uma habilidade indispensável, e a internet tem muitos recursos, que vão desde como codificar do zero até como construir aplicativos profissionais de ponta, APIs e algoritmos. Aprender a codificar em pelo menos uma linguagem de programação é obrigatório em instituições educacionais. Cada aspecto da vida hoje é controlado em algum ponto por um programa de computador. Com o desenvolvimento de computadores e linguagens de programação ao lado de sistemas operacionais, a programação tornou-se maior e mais complexa. Hoje, a programação é necessária em todos os departamentos em todos os lugares. 

C ++ é uma das linguagens de programação populares ensinadas em programas educacionais. Você pode ter aprendido habilidades introdutórias de programação, mas como pode colocá-las em bom uso? O C ++ que você aprendeu na escola é suficiente para ser produtivo? Para amadores, a resposta é sim! Você pode ser produtivo ao usar C ++ executando o código básico no console. Para ser profissional, entretanto, a resposta é não. Você precisa construir aplicativos C ++ modernos. Então, como você pode passar do Classroom C ++ para o Modern C ++ e incluir imagens, temas, bancos de dados, funcionalidades poderosas e gráficos 2D ou 3D impressionantes em seu aplicativo multiplataforma ou multiplataforma? Neste artigo, forneceremos dicas importantes sobre como você pode aprimorar seu conjunto de habilidades. Mas antes disso, vamos compartilhar alguns motivos pelos quais C ++ é útil.

  1. Saiba por que C ++ é necessário na educação 

No mundo da programação, existem dois tipos de linguagens de programação: Linguagens de programação interpretadas não interpretadas (compiladas) . Nossos computadores trabalham com código de máquina (código que pode ser programado diretamente pelo código assembly em uma CPU ou GPU) que diz ao computador o que fazer. Os arquivos executáveis ​​possuem este código. O código de máquina é o código mais rápido e altamente nativo, mas requer a escrita de muitas linhas para tarefas simples e não pode ser generalizado para diferentes tipos de CPUs. 

Um compilador é um programa de computador que converte código em uma linguagem de programação legível escrita em texto em código de máquina executável. Dependendo de quão bom o compilador é na otimização, tal código pode não ser tão rápido quanto o código assembly escrito à mão, mas a diferença na velocidade geralmente é muito pequena. Os compiladores C ++ são normalmente muito bons em otimização, e a linguagem foi projetada com a otimização em mente. Este é um dos motivos pelos quais C ++ é a linguagem de programação mais rápida e poderosa e uma das linguagens mais populares do mundo. 

Linguagens de programação interpretadassão compilados em código de máquina em tempo real ou, em vez disso, são executados em um aplicativo executável normal que lê o código-fonte e implementa o comportamento. Java, Python ou Visual Basic são bons exemplos. É por isso que essas linguagens são mais lentas ao executar operações, pois precisam usar bibliotecas compiladas para operações mais rápidas. A maioria das linguagens de programação interpretadas e algumas linguagens asm usam compiladores C / C ++ para construir suas bibliotecas: Python, por exemplo, tem suas principais bibliotecas orientadas para o desempenho escritas em C ou C ++, então você escreve código Python que realmente usa C ++ nos bastidores . Usar uma linguagem de programação interpretada é como ser carregado por um executor, enquanto usar uma linguagem de programação compilada (não interpretada) é como correr você mesmo. Essa diferença sutil se transforma em uma grande diferença quando a mesma rotina (por exemplo,para reconhecimento de rosto) é executado milhões de vezes em um milissegundo.

C ++ pode ser um pouco difícil de aprender, mas é mais rápido e produtivo em todas as áreas e plataformas. Aprender C ++ em sua escola ou universidade é um bom plano porque o campo C ++ é muito amplo. Portanto, para modernizar seu conhecimento de C ++, você deve decidir que tipo de aplicativo deseja desenvolver profissionalmente. Você quer desenvolver aplicativos de banco de dados? Você deseja codificar aplicativos C ++ de backend em execução em servidores ou em pesquisa de engenharia ou científica? Você quer desenvolver aplicativos simples com imagens impressionantes e interfaces de IU? Você quer desenvolver jogos 2D ou 3D, aplicativos de IA ou aplicativos mais complexos, incluindo todos esses?

Aqui está a primeira dica: 

Dica 1 . ‘Seu conhecimento universitário de C ou C ++ é necessário para passar para o C ++ Moderno e escolher a área em que deseja trabalhar. Esse conhecimento também pode ser aplicado durante a construção de aplicativos modernos.

  1. Use compiladores multiplataforma ou escolha a plataforma principal do sistema operacional para a qual deseja desenvolver

C ++ tem padrões, portanto, geralmente, a maioria dos compiladores pode executar a maioria dos códigos C ++, mas alguns compiladores têm alguns recursos específicos. Diferentes sistemas operacionais têm diferentes compiladores C ++ e IDEs populares. Por exemplo, o sistema operacional Windows tem Visual C ++, C ++ Builder e muitos outros compiladores e IDEs; Linux tem GNU C / C ++ e clang; Mac-OS, iOS clangou; e o Android tem Android Studio com C ++. Também há suporte cruzado e multiplataforma em alguns desses compiladores e IDEs como C ++ Builder e Visual C ++.

Se você deseja se concentrar em apenas um sistema operacional, pode escolher um deles. Se seu aplicativo for bem-sucedido nesse sistema operacional e você quiser migrá-lo para outros sistemas operacionais, isso pode ser difícil de fazer. Com o Modern C ++, usar um compilador multiplataforma ou IDE (também chamado de desenvolvimento de plataforma cruzada ou multi-dispositivo) é melhor do que usar um compilador específico, pois isso permite que você compile facilmente seu código para todas as plataformas. Esta é uma das chaves para tornar seu código moderno: seu código pode estar focado em um sistema operacional, mas deve ser fácil de compilar em outros .

Dica 2 : use compiladores multiplataforma. Se você se concentrar em uma plataforma de sistema operacional, também considere que será uma plataforma com vários sistemas operacionais.

  1. Escolha seu compilador profissional com o IDE 

 Hoje existem muitos compiladores C ++ e IDEs com muitos recursos para desenvolver aplicativos profissionais, incluindo Visual C ++, C ++ Builder, GNU C / C ++, Objective-C, Dev-C ++ (com TDM-GCC), Code-Blocks (com GNU C / C ++), CLion (com GNU C / C ++), editor Eclipse. Alguns compiladores vêm com IDE (ou IDE vem com seu próprio compilador), alguns IDEs vêm com um compilador popular (como GNU C / C ++) e alguns IDEs só suportam codificação C ++ com destaque de sintaxe (como Notepad ++). 

Aqui, para mudar para o C ++ moderno com os padrões mais recentes, conectividade de banco de dados, suporte para várias plataformas e suporte 2D e 3D, sugerimos o C ++ Builder . Ele roda no Windows e também é capaz de compilar código para iOS e Android de 32 bits. 

C ++ Builder faz parte do RAD Studio, mas funciona de forma autônoma se você não quiser usar a outra linguagem que o RAD Studio oferece (Delphi). C ++ Builder inclui um compilador aprimorado pelo Clang para Win32, Win64 e iOS. Ele também apresenta um RAD Studio IDE moderno e de alta produtividade, ferramentas de depuração e conectividade corporativa para acelerar o desenvolvimento de interface do usuário entre plataformas. Você pode desenvolver aplicativos baseados em GUI facilmente, pois vem com a premiada estrutura VCL para aplicativos nativos do Windows de alto desempenho e a poderosa estrutura FireMonkey (FMX) para interfaces de usuário de plataforma cruzada.

Um C ++ Builder Community Edition gratuito pode ser usado por alunos, iniciantes e startups. Você pode baixar o C ++ Builder Community Edition gratuito aqui . Os desenvolvedores profissionais podem usar as versões profissional, arquiteto ou empresarial do C ++ Builder. Você pode baixar e usar a versão de teste por um mês, com os mesmos recursos da versão completa. Visite aqui para mais detalhes. 

Se você deseja codificar apenas aplicativos de back-end (ou aplicativos de console), pode usar o compilador GNU C / C ++ (GCC, g ++) com um IDE compatível. GNU g ++ é outro poderoso compilador C ++ originalmente escrito como o compilador para o sistema operacional Unix, Linux e GNU. O sistema GNU foi desenvolvido para ser 100% software livre e é eficiente tanto em operações de 32 quanto de 64 bits. Este compilador pode ser usado no Windows usando camadas de compatibilidade MinGW ou Cygwin Linux. Os arquivos executáveis ​​compilados precisam de uma pequena DLL para serem executados independentemente no Windows. É compatível principalmente com os padrões do Clang. 

O compilador GNU C / C ++ (GCC, g ++) também pode ser usado pelo Visual Studio Code, Dev C ++, Code Blocks e CLion IDEs, e pode ser usado diretamente com o Prompt de Comando ou PowerShell. 


Dica 3: use um compilador profissional com IDE, como o C ++ Builder. 

  1. Considere um padrão C ++ moderno ao codificar

Devemos considerar um padrão C ++ ao codificar? A resposta é sim! É altamente recomendável codificar com um compilador C ++ aprimorado por CLANG ou, tanto quanto possível, para os padrões CLANG. 

CLANG é um padrão para compiladores C ++ (na codificação, compilação, depuração de C ++ etc.) considerados compiladores C, Objective-C, C ++ e Objective-C ++ de qualidade de produção quando direcionados a X86-32, X86-64 e ARM . É um novo padrão de compilador C / C ++ (C ++ 98, C ++ 11, C ++ 17, C ++ 20, C ++ 23 …) suportado pelo Projeto de Infraestrutura do Compilador LLVM e tem sido um compilador padrão em últimos anos para a maioria dos compiladores C / C ++. Isso significa que se você codificar para um compilador CLANG, a maioria dos outros IDEs e compiladores de plataformas oferecerá suporte ao seu código sem nenhuma alteração. O padrão C ++ 17 mais recente é compatível com a maioria dos compiladores C ++. Mais informações sobre os principais recursos da linguagem podem ser encontradas aqui . C ++ 20 é novo e precisa de tempo de adaptação.

C ++ Builder e Visual C ++ vêm com IDE e compiladores aprimorados por CLANG. GNU C / C ++ e Objective-C também são listados como compiladores CLANG. 

O que CLANG significa para um desenvolvedor? Se você desenvolver seu código no padrão CLANG, seja focado em uma única plataforma ou em várias plataformas, seu código será compatível com outros compiladores aprimorados por CLANG. Você pode mover facilmente seus códigos de um compilador para outro.

Dica 4: codifique com um compilador C ++ aprimorado por CLANG ou codifique o máximo possível nos padrões CLANG.

  1. Use Unicode Strings ou Wide Strings

No College C ++, as matrizes de caracteres são geralmente fornecidas como texto alfanumérico, conforme abaixo. 

[crayon-673fcb3fac7f6317036929/]

Embora usado em código de nível muito baixo, strings mantidas neste formato (ou um char *) são difíceis de escrever com segurança e uma causa comum de bugs, incluindo problemas de segurança.

Em geral, use strings em vez de matrizes char como no exemplo abaixo

[crayon-673fcb3fac803332009569/]

Infelizmente, na maioria dos códigos e bancos de dados, nomes, nomes do meio, sobrenomes, textos de endereços e assim por diante são definidos como matrizes de caracteres fixos. Um exemplo de C ++ estilo universitário está abaixo.

[crayon-673fcb3fac805701546442/]

Observe que a maioria dos nomes tem cerca de três a oito caracteres (Jim, Ali, Chen, Mehmet); sobrenomes e nomes do meio são quase os mesmos. E muitos endereços têm cerca de 50-80 caracteres. Alguns aplicativos possuem campos de endereço vazios enquanto estão definidos para serem adicionados. No entanto, eles têm comprimento fixo e são inflexíveis, e os métodos para lidar com strings nesse formato costumam ser inseguros.

Com isso em mente, o uso das cordas abaixo é muito mais moderno.

[crayon-673fcb3fac806050733180/]

std :: string funciona com char, o que significa que não é uma string Unicode que pode suportar todos os idiomas do mundo, mas você pode conter dados UTF8 em uma string, embora não seja ideal (os dados não são marcados como UTF8, e sequências de caracteres representam um caractere da linguagem humana. Podemos facilmente alterar a definição std :: string para a definição std :: wstring .

Usar string é muito bom se você estiver desenvolvendo um aplicativo rodando com textos em inglês ou com padrões de texto ASCII (em alemão, francês, espanhol, etc.) porque string consiste em matrizes de caracteres ASCII.

Uma string larga pode ser usada em nosso exemplo abaixo.

[crayon-673fcb3fac807720392123/]

Use L antes das aspas do texto como abaixo para suportar a formatação Unicode.

[crayon-673fcb3fac808118303443/]

WideString representa uma seqüência alocada dinamicamente de string wchar_t de caracteres Unicode de 16 bits e é apropriada para uso em aplicativos COM. No entanto, WideString não é contado por referência. UnicodeString é uma string alocada dinamicamente em Unicode cujo comprimento máximo é limitado apenas pela memória disponível, é mais flexível e eficiente em outros tipos de aplicativos.  Se você estiver desenvolvendo um aplicativo global, use strings Unicode. 

O padrão Unicode para UnicodeString fornece um número exclusivo para cada caractere (8, 16 ou 32 bits) a mais do que caracteres ASCII (8 bits). As strings Unicode estão sendo amplamente utilizadas por causa de seu suporte para idiomas em todo o mundo e seus emojis. Atualmente em C ++ moderno, dois tipos de strings são usados: um array de chars (strings char) e UnicodeStrings (WideStrings e AnsiStrings são mais antigos, não compatíveis com todos os recursos agora). CLANG | C ++ Builder | GNUC / C ++ | compiladores e IDEs estão usando este padrão para formulários GUI para oferecer suporte a todas as linguagens para fornecer aplicativos globalmente. Mais informações sobre a estrutura de UnicodeStrings podem ser encontradas aqui . RAD Studio, Delphi e C ++ Builder usam strings baseadas em Unicode – isto é, o tipo de string é uma string Unicode ( System.UnicodeString) em vez de uma string ANSI. Use string ou UnicodeString no C ++ Builder como abaixo,

[crayon-673fcb3fac80b472927669/]

Dica 5:  use strings largas ou UnicodeStrings em formatos de string para oferecer suporte a linguagem mundial; evite usar matrizes de caracteres fixos tanto quanto possível.

Leia a parte 2 desta postagem do blog aqui

Leia a parte 3 desta postagem do blog aqui

Sair da versão mobile