Ir ao conteúdo
  • Cadastre-se

Dúvida String em C++


joedson7

Posts recomendados

Galera, não consigo entender porque a primeira expressão é válida e a segunda não, alguem sabe explicar o pôrque?

//Expressão válida, ou seja, compila

const std::string hello = "Hello";

const std::string message = hello + ", world" + "!";

//Expressão inválida, ou seja, não compila

const std::string exclam = "!";

const std::string message = "Hello" + ", world" + exclam;

Link para o comentário
Compartilhar em outros sites

Isso acontece por causa da do tratamento que o C++ fazer para converter e concatenar o conteúdo.

Ele sempre valida o tipo do primeiro elemento, que nesse caso é um char[6], e depois vem um std::string, impedindo que a conversão continue, pois std::string é um tipo específico do C++, e não ANSI C.

Para resolver isso, teria de converter o primeiro elemento para o tipo específico std::string, então o compilador interpretará os demais de forma correta (ou seja, conteúdos compatíveis).

Exemplo:


const std::string exclam = " !";
const std::string message = std::string("Hello") + ", world" + exclam;

Procurando na internet, coincidentemente encontrei a mesma dúvida (com o mesmo exemplo) nesse link:

http://stackoverflow.com/questions/2329461/help-a-beginner-with-a-c-hello-world

Lá explicam em detalhes porque isso ocorre.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!