Enviado em 23/06/2013 - 23:20h
Olá pessoal do VOL, eu ainda sou muito jovem no mundo da programação e não consegui absorver alguns conceitos básicos ainda.
Eu não estou conseguindo entender a diferença entre um objeto e um ponteiro para uma classe. Para tentar me ajudar a entender melhor eu procurei fazer alguns testes que falharam. Eu criei um Aluno.h com o seguinte código:
#ifndef Aluno_h
#define Aluno_h
class Aluno
{
int idade;
};
#endif
E um Aluno.cpp
#include<iostream>
using namespace std;
int main()
{
Aluno* a;
a -> idade = 30;
cout << "idade: " << a -> idade << endl;
return 0;
}
para compilar: g++ -c Aluno.cpp
g++ -o Aluno Aluno.o
./Aluno
mas o seguinte erro é gerado: Falha de segmentação. Sem o uso do ponteiro funciona normalmente, pelo que eu entendi ambos possuem a mesma funcionalidade, mas definitivamente não são a mesma coisa.
Alguém pode fornecer alguma explicação sobre ponteiros para classes e sobre o erro gerado? Obrigado!
Eu não estou conseguindo entender a diferença entre um objeto e um ponteiro para uma classe. Para tentar me ajudar a entender melhor eu procurei fazer alguns testes que falharam. Eu criei um Aluno.h com o seguinte código:
#ifndef Aluno_h
#define Aluno_h
class Aluno
{
int idade;
};
#endif
E um Aluno.cpp
#include<iostream>
using namespace std;
int main()
{
Aluno* a;
a -> idade = 30;
cout << "idade: " << a -> idade << endl;
return 0;
}
para compilar: g++ -c Aluno.cpp
g++ -o Aluno Aluno.o
./Aluno
mas o seguinte erro é gerado: Falha de segmentação. Sem o uso do ponteiro funciona normalmente, pelo que eu entendi ambos possuem a mesma funcionalidade, mas definitivamente não são a mesma coisa.
Alguém pode fornecer alguma explicação sobre ponteiros para classes e sobre o erro gerado? Obrigado!