Macumba 0 #1 Postado 15 Novembro, 2008 Eu estou penssando em aprender C++ mas fui pesquisar, e vi que tinha a linguagem C e C++. Qual a diferença da linguagem C e C++? Tambem, estou penssando em baixar apostilas pelo apostilando.com que é um bom site de apostilas. Mas por qual apostila comesso? C ou C++? Qual a diferença? Eu quero, de preferencia programar jogos e criador de jogos ( mmorpg ) tenho um vasto conhecimento de sql tambem. Obrigado e aguardando por respostas. Compartilhar este post Link para o post Compartilhar em outros sites
the_labrax 0 #2 Postado 24 Novembro, 2008 A principal diferença é a velocidade/programação... O resultado ficará aparentemente a mesma coisa. Já que você tentara fazer jogos, poderia começar diretamente por C++, não terá problemas sem ter experiências com C Ansi. Tenha uma boa aprendizagem. Compartilhar este post Link para o post Compartilhar em outros sites
Deragon 25 #3 Postado 28 Novembro, 2008 c++ tem maior flexibilidade com códigos, por isso é mais recomendado quando fazer jogos do que o C eu dei uma breve lida sobre C e já fui pro c++, em minha opnião mais fácil Compartilhar este post Link para o post Compartilhar em outros sites
Wekahost 0 #4 Postado 5 Dezembro, 2008 C++ tem orientação a objetos, acho que essa é a principal diferença, dentre muitas outras, aprenda C++ mesmo, já "engloba" C Compartilhar este post Link para o post Compartilhar em outros sites
Tukith 0 #5 Postado 6 Dezembro, 2008 Tem a C# também. Mas que eu saiba a C++ é a mais "poderosa". Abraços, //Tvk!th Compartilhar este post Link para o post Compartilhar em outros sites
the_labrax 0 #6 Postado 11 Dezembro, 2008 C# já é outra coisa. E as duas, já são orientadas a objetos. Mas o C++ tem a vantagem de já ser coisa mais nova e estar mais ligada a directx / opengl. Compartilhar este post Link para o post Compartilhar em outros sites
xXGriloXx 0 #7 Postado 17 Janeiro, 2009 também tava com essa dúvida... vlw pelas respostas Compartilhar este post Link para o post Compartilhar em outros sites
Join_u 0 #8 Postado 30 Janeiro, 2009 A verdade eh q C++ eh C com mais recursos se vc for aprender do zero comece pelo C Compartilhar este post Link para o post Compartilhar em outros sites
Ninja X 0 #9 Postado 30 Janeiro, 2009 Bjarne Stroustrup (Algo assim o nome dele), criou algumas "funções a mais" para o C, e como era apenas mais funções para o C, não se tornou D e sim C With Classes (C com Classes), que hoje é chamado de C++. Eu programo C++ pela facilidade em relação a C, mais a principal diferença entre C e C++ é que o C++ é o C com Classes, e orientada a objetos. Compartilhar este post Link para o post Compartilhar em outros sites
Chê. 1 #10 Postado 30 Janeiro, 2009 Resumindo tudo, C++ é C orientada a objetos. Compartilhar este post Link para o post Compartilhar em outros sites
Strider 0 #11 Postado 31 Janeiro, 2009 C# já é outra coisa.E as duas, já são orientadas a objetos. Mas o C++ tem a vantagem de já ser coisa mais nova e estar mais ligada a directx / opengl. C# é mais novo, deixa de ser burro Compartilhar este post Link para o post Compartilhar em outros sites
Join_u 0 #12 Postado 31 Janeiro, 2009 C# é mais novo, deixa de ser burro A microsoft Criou C# e deu esse nome no intuito das pessoas pensarem ser uma melhoria de C/C++ na verdade C# apesar de possuir uma sintaxe igual ao do C/C++ nao tem nada a ver com as linguagens de programacao citadas.... Compartilhar este post Link para o post Compartilhar em outros sites
Fusion 0 #13 Postado 1 Fevereiro, 2009 (editado) O foda é fica vendo quem não sabe de nada fala né. O C++ foi desenvolvido por Bjarne Stroustrup em 1979 como uma incrementação da linguagem C. Foi primeiro chamado de 'C com classes' e depois renomeado para C++ em 1983. Ele continuou sendo desenvolvido, sendo adicionados o uso de classes(orientação), a herança de classes, multipla herança, funções virtuais e gabaritos. Exemplo de classes: class MyClass { public: MyClass(); // Construtor da classe ~MyClass(); // Destrutor da classe // Aqui coisas que podem ser manipuladas externamente (exemp: MyInst.Thing). private: // Aqui coisas que não podem ser herdadas, ou seja, apenas dessa sala. protected: // Aqui coisas que só podem ser utilizadas por funções membro. }; Herança(MyInheritedClass vai receber todos os membros de MyClass exceto aqueles que forem 'private' pelo fato de estarmos usando ': public MyClass') class MyInheritedClass : public MyClass { public: MyInheritedClass(); // Construtor da classe ~MyInheritedClass(); // Destrutor da classe // Mesma coisa que da classe. }; Multi herança class MyMultiInheritedClass : public MyClass, public MyInheritedClass { public: MyMultiInheritedClass(); // Construtor da classe ~MyMultiInheritedClass(); // Destrutor da classe // Mesma coisa que da classe. }; Gabaritos(exemplo mais usado) #include<iostream> template<class A> void swap(A &var1, A &var2) { A tmp = var1; var1 = var2; var2 = tmp; } int main() { int i1 = 5, i2 = 10; std::cout << "valor de i1 = " << i1 << "\nvalor de i2 = " << i2 << "\n\n"; swap(i1, i2); std::cout << "valor de i1 = " << v1 << "\nvalor de i2 = " << i2 << "\n\n"; char *s1 = "Hello world.", *s2 = "Bye world."; std::cout << "valor de s1 = " << s1 << "\nvalor de s2 = " << s2 << "\n\n"; swap(s1, s2); std::cout << "valor de s1 = " << s1 << "\nvalor de s2 = " << s2 << "\n\n"; } E sobre o C#, ele foi criado pela microsoft voltado mais para aplicações com GUI(Graphical User Interface - interface grafica do usuario) e é mais lento(pelo menos eu acho). Editado 1 Fevereiro, 2009 por Fusion Compartilhar este post Link para o post Compartilhar em outros sites
Bogos 0 #14 Postado 3 Março, 2009 E sobre o C#, ele foi criado pela microsoft voltado mais para aplicações com GUI(Graphical User Interface - interface grafica do usuario) e é mais lento(pelo menos eu acho). Não é mais lento, simplesmente não tem nada a ver com C ou C++, apesar de ser baseada nas mesmas. C# como você disse é voltada para aplicações desktop (obviamente com interface gráfica) e o fator mais importante é que ela roda em cima de uma plataforma (framework) chamada .NET Uma aplicação desenvolvida em C++ compiladas para Windows, rodará apenas no Windows (salvo uso de Wines da vida), enquanto uma aplicação em C# roda em qualquer SO desde que haja a plataforma .NET instalada (como o Java). Se você tem uma ótima base com desenvolvimento, parta para o aprendizado de C++ senão como ja foi dito é melhor se acostumar com o C primeiro. Compartilhar este post Link para o post Compartilhar em outros sites
Guw 0 #15 Postado 4 Março, 2009 Como já disseram...resumindo, o C++ é orientado a objetos. Se o teu caso é querer programar jogos, dizem que a mais usada e a melhor é C++. Compartilhar este post Link para o post Compartilhar em outros sites
rexxar 0 #16 Postado 24 Maio, 2009 Vo conta uma historinha : C/C++ fazem tudu tem acesso a qualqeh parte do hardware(ESCOVAÇAO DE BITS) sao linguagens poderosas voce pode programar um microondas com C/C++. C/C++ nao tem muita difirençade si pois o C++ eh uma melhoria criada pelo matematico bjner stroup intao o C++ engloba toda a syntaxe de C e ainda tem um PLUS C++ no caso com enfoque para classes Programaçao orientada a objeto ja que quando foi criado o C nao tinha muito o conceito de POG e sim programaçao orientada a objeto Ja o C# criado pela empresa do tio bill ;D ela tem um enfoque mais para web mais tb eh muito desenvolvido para desktop a sua ideia era criar uma ferramenta de facil acesso (qualqeh um entender ) tem recursos a baixo nivel , mais ela viajo pq ele presisa te o framework .donet instalado para funcionar mais eh muito forte e veio para tenta barrar o PODEROSO JAVA !!!!!! Compartilhar este post Link para o post Compartilhar em outros sites
kinabr 0 #17 Postado 26 Novembro, 2009 Como já mencionaram, o C++ se diferencia do C pelo suporte ao uso de OO(orientação a objetos). Mas, esqueceu-se de mencionar, o C++ também é vantajoso em relação ao C pela maior possibilidade de reaproveitamento de código e pela maior manutebilidade dos programas(questão de update, manutenção, etc(que são bem importantes)(proporcionado pela OO). Além disso o C++ conta com o uso do namespace, o que é vantajoso em certos aspectos, e , que eu lembre, você pode ter duas funções/métodos com o mesmo nome, desde que retornem tipos de valores diferentes e recebam valores diferentes. Compartilhar este post Link para o post Compartilhar em outros sites
Bogos 0 #18 Postado 28 Novembro, 2009 Vo conta uma historinha : ... ... Ja o C# criado pela empresa do tio bill ;D ela tem um enfoque mais para web mais tb eh muito desenvolvido para desktop a sua ideia era criar uma ferramenta de facil acesso (qualqeh um entender ) tem recursos a baixo nivel , mais ela viajo pq ele presisa te o framework .donet instalado para funcionar mais eh muito forte e veio para tenta barrar o PODEROSO JAVA !!!!!! Uma estorinha né. O C# é da MS mas foi desenvolvido (ignorando a equipe e citando apenas o cabeça) pelo "pai" do Pascal e consequentemente do Delphi. E por favor, não repita jamais que C# tem relação com Web. E se a MS "viajou" ao desenvolver uma linguagem que rode em cima de uma plataforma, sem hipocrisia podemos afirmar que o Java não é tão PODEROSO assim. (Y) Compartilhar este post Link para o post Compartilhar em outros sites
GDLib 2 #19 Postado 5 Dezembro, 2009 A diferença de C para C++ não fica apenas na orientação a objetos. Até porque, orientação a objetos é um paradigma, que pode sim ser implementado em C, a diferença que em C++ o suporte é built-in. Outra coisa é que C++ é strong typed, enquanto que C weak typed. Como hoje eu programo apenas em C, eu pude ver diferenças claras na hora do desenvolvimento, tais como o uso de ponteiros, que em C é muito mais manual e complicado. Apesar disso, a manipulação de tipos em C é menos enjoada. Programas em C tendem a possuir um menor tempo de runtime e compiling, e portanto, são mais rápidos que programas em C++. Mas quem se importa com melhor velocidade? O uso de uma linguagem também está associada a seu uso, por isso, como hoje eu trabalho com aplicações de mais baixo nível, utilizo C, porém se um dia eu for ter que criar um projeto de software "normal" e grande, terei que usar orientação a objetos, e talvez optaria por C++ ou Java. P.S: O pior argumento de se criticar a linguagem Java é chamá-la de lenta, porém justificar o porque e se é verdade, eu já não vejo gente fazendo. Normalmente quem fala isso, não domina orientação a objetos, é muita abstração para uma pessoa só, haha. Sobre o C#: o Bogos tem razão, porém o que eu acho sobre a vantagem de ser portável, eu considero uma piada, ter de instalar o .NET numa plataforma que não seja da MS. Compartilhar este post Link para o post Compartilhar em outros sites
warman 0 #20 Postado 20 Dezembro, 2010 Para ajudar na compreensão: C/C++ - Linguagem de programação científica: a utilização não é especifica para um domínio como por exemplo, o cobol(linguagem comercial). Há várias diferenças entre C e C++ dentre elas: - A única maneira de se programar em C é seguindo um paradigma estrutural ou seja, tudo que voce programa, deve ser passo a passo. por exemplo: "Eu sou uma pessoa e sou utilizada para correr." - Em C++ podemos TAMBÉM, utilizar o paradigma orientado a objetos, ou seja, descrevermos características de uma coisa e implementar suas ações como por exemplo(note a diferença do exemplo anterior): "Eu sou uma pessoa e eu corro." Abaixo seguem exemplos em C e C++ respectivamente: EM C: struct pessoa { char * nome; } void correr(struct & pessoa) { printf("Eu corro"); } Em C++: public class Pessoa { char * nome; public void correr() { cout << "Eu corro "; } } note que no exemplo de C++ está tudo junto representando uma pessoa. C# é uma linguagem baseada em linguagens de mais baixo nivel(perto de hardware) que por sua vez (por baixo dos panos hehehe) é C/C++. Esta linguagem é desenvolvida pela equipe de microsoft para aplicações que rodam sobre a plataforma .net esta plataforma, proporciona portabilidade, pois pode ser instalada em qualquer Sistem operacional e a linguagem de programação se baseia na plataforma e não no sistema operacional que nem C. C# possui o mesmo mecanismo que a linguagem Java. C# veio depois de C++ como ja explicado pelo nosso colega de fórum. Nossos sistemas computacionais praticamente são BASEADOS em Assembly(linguagem de máquina) e C/C++(linguagens de sistema ou científicas). Para um bom estudo, recomendo você ler sobre algoritmos. Irão ajudar para desenvolver raciocinio lógico para programar, para depois você seguir o metodo estruturado do C e depois o orientado a objeto do C++, assim você terá uma base boa para programar. Compartilhar este post Link para o post Compartilhar em outros sites