Duvidas Sobre C++ ( básico de inicio de projeto)

16 respostas
SirDominque

http://imageshack.us/photo/my-images/85/50337675.jpg/

Gente, eu sei fazer classes em java. Sei pra que serve… Mas em C++ tem esses tipos…
E eu estou confuso principalmente, na parte de makefile e class Library!
Eu só quero criar uma classe , compilar e rodar de forma “sequencial” não quero ja comecar OO em C++; Quero ir do começo…

Voces me ajudam ?

16 Respostas

SirDominque

Como eu Executo ele? Estou usando o Visual Studio 2010 Express! To acostumado no Netbeans!

Hello.cpp em source Files
#include "Hello.h"
#include <iostream>

Hello::Hello(void)
{
	printf("oi");
}


Hello::~Hello(void)
{
}
Hello.h
#pragma once
class Hello
{
public:
	Hello(void);
	~Hello(void);



};

Erro :

1>------ Build started: Project: FirstProject, Configuration: Debug Win32 ------
1> Hello.cpp
1>LINK : fatal error LNK1561: entry point must be defined
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

matheuslmota

Tudo bem Andre Lopes?
Do jeito que você criou seu projeto, você criou um projeto de DLL (Class Library). E você não executa uma DLL (é mais ou menos isso que a mensagem de erro está dizendo).
Crie um novo projeto C++ no Visual Studio, só que ao invés de “Class Library”, marque a opção “Empty Project”.

SirDominque

OK! Vou fazer isso agora. Desculpa a demora pra responder… Meu Gmail marcou o GUJ como Spam, mas eu ja configurei ele pra mandar sempre pra caixa de entrada… ja posto o resultado.

ViniGodoy

Ele está reclamando da falta de um main.

Para criar seu projeto use new->console application. Deixe marcada a opção Empty Project.

O programa C++ começa numa função com a seguinte assinatura:

int main(int argc, char* argv[]) { }

Caso essa função não exista, o C++ irá reclamar que falta um "entry point" (ponto de entrada).

SirDominque

Ahh ok! estou fazendo isso agora!

Criei o Empty file, a classe . Mas aqui tem dois arquivos. O header e o Source.Aonde que eu coloco esse main ?

Coloquei no Source File
#include "Hello.h"


int main(int argc, char* argv[])   
{  


}  

Hello::Hello(void)
{
}


Hello::~Hello(void)
{
}
Esse Hello::Hello(void) é o método né? Como chamo ele no main ? Hello(); ?

E o que significa isso tudo Hello::Hello ? Porque dois pontos?
Tenho uma apostila de C++ aqui mas ela não explica essas coisas >.<

ViniGodoy

Coloca o main no source. Header são os arquivos .h.

Já que você está usando iostream e quer usar C++, use cout ao invés de printf:

Hello.cpp
#include "Hello.h"  
    #include &lt;iostream&gt;  

    using namespace std;

    Hello::Hello()  
    {          
        cout &lt;&lt; "oi" &lt;&lt; endl;
    }
Hello.h
#pragma once
class Hello
{
public:
	Hello();
};
main.cpp
#include &quot;Hello.h&quot;

int main(int argc, char* argv[]) {
   Hello h;
}
SirDominque

O main.cpp Fica em qual pasta?

ViniGodoy

Hello::

Significa que você está implementando alguma coisa da classe Hello.

No caso, o método Hello(). Um método sem tipo de retorno e com o mesmo nome da classe, assim como no Java, é um construtor.

A chamada

Cria uma variável h, portanto, irá chamar automaticamente o construtor.

O main.cpp fica dentro do source, na mesma pasta dos demais arquivos do seu projeto.

ViniGodoy

Qual apostila você está seguindo? Seria a do André Bueno recomendada no meu roadmap?
http://pontov.com.br/site/cpp/46-conceitos-basicos/88-roadmap-c

SirDominque

Pronto! Fiz isso e não deu nenhum Erro!
mas não apareceu nada no visual studio
Eu só compilei. Como Executo tudo isso ?

1>------ Build started: Project: Hello, Configuration: Debug Win32 ------
1> Skipping… (no relevant changes detected)
1> main.cpp
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

SirDominque

ViniGodoy:
Qual apostila você está seguindo? Seria a do André Bueno recomendada no meu roadmap?
http://pontov.com.br/site/cpp/46-conceitos-basicos/88-roadmap-c

Não. Mas vou seguir ele então!
ja baixei e coloquei no Pendrive :smiley: .

ViniGodoy

Tem um botão de “play” na parte superior do visual (a tecla de atalho para ele é F5). Mas eu recomendo que você coloque um breakpoint na última linha do método main, caso contrário a janela do console vai abrir e fechar tão rápido que você nem vai ver o resultado.

Outra opção é ir pelo console, abrir a pasta que ele gerou o exe, e executar o arquivo executável do seu projeto diretamente.

ViniGodoy

É bom ter uma boa referência ao estudar C++. É uma linguagem que separa os adultos das crianças.

Uma apostila meia boca ou um livro mau escrito pode ter conseqüências catastróficas.

SirDominque

ahh, deu certo :smiley:

Vou estudar essa apostila ! Qualquer coisa eu posto de novo.! Vlw!!!

matheuslmota

ViniGodoy:
Tem um botão de “play” na parte superior do visual (a tecla de atalho para ele é F5). Mas eu recomendo que você coloque um breakpoint na última linha do método main, caso contrário a janela do console vai abrir e fechar tão rápido que você nem vai ver o resultado.

Outra opção é ir pelo console, abrir a pasta que ele gerou o exe, e executar o arquivo executável do seu projeto diretamente.

Uma outra opção serial colocar ao final do método main a seguinte linha:

Isso congela a Janela e faz a mesma esperar que o usuário digite alguma tecla para que ela seja fechada.

ViniGodoy

Só fique atento que um system(“pause”) não pausa o apenas Visual.

Você efetivamente está pedindo para o sistema operacional colocar a mensagem de “pressione qualquer tecla para continuar…” ao final da sua aplicação.
É um comportamento um tanto estranho, use-o apenas para facilitar a depuração.

Criado 5 de maio de 2012
Ultima resposta 5 de mai. de 2012
Respostas 16
Participantes 3