Jump to content
Sign in to follow this  
Macumba

Qual a diferença de C e de C++?

Recommended Posts

Macumba    0
Macumba

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.

Share this post


Link to post
Share on other sites
the_labrax    0
the_labrax

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.

Share this post


Link to post
Share on other sites
Deragon    25
Deragon

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

Share this post


Link to post
Share on other sites
Wekahost    0
Wekahost

C++ tem orientação a objetos, acho que essa é a principal diferença, dentre muitas outras, aprenda C++ mesmo, já "engloba" C

Share this post


Link to post
Share on other sites
Tukith    0
Tukith

Tem a C# também.

Mas que eu saiba a C++ é a mais "poderosa".

 

Abraços,

 

//Tvk!th

Share this post


Link to post
Share on other sites
the_labrax    0
the_labrax

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.

Share this post


Link to post
Share on other sites
xXGriloXx    0
xXGriloXx

também tava com essa dúvida...

vlw pelas respostas

Share this post


Link to post
Share on other sites
Join_u    0
Join_u

A verdade eh q C++ eh C com mais recursos se vc for aprender do zero comece pelo C

Share this post


Link to post
Share on other sites
Ninja X    0
Ninja X

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.

Share this post


Link to post
Share on other sites
Chê.    1
Chê.

Resumindo tudo, C++ é C orientada a objetos.

Share this post


Link to post
Share on other sites
Strider    0
Strider
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

Share this post


Link to post
Share on other sites
Join_u    0
Join_u
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....

Share this post


Link to post
Share on other sites
Fusion    0
Fusion

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).

Edited by Fusion

Share this post


Link to post
Share on other sites
Bogos    0
Bogos

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.

Share this post


Link to post
Share on other sites
Guw    0
Guw

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++.

Share this post


Link to post
Share on other sites
rexxar    0
rexxar

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++ :D 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 :D ) 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 !!!!!!

Share this post


Link to post
Share on other sites
kinabr    0
kinabr

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.

Share this post


Link to post
Share on other sites
Bogos    0
Bogos
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 :D ) 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)

Share this post


Link to post
Share on other sites
GDLib    2
GDLib

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.

Share this post


Link to post
Share on other sites
warman    0
warman

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.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×