Ir ao conteúdo
  • Cadastre-se
idkgabz

destrutores e construtores c++

Recommended Posts

Estou tendo muita díficuldade em criar destrutor e constr

#include <iostream>
#include <cstdlib>
#include <string>

using namespace std;
// questao 2
class Alunos
{
public:
string nome1;
string nome2;
string nome3;
int nota11,nota12,nota21,nota22,nota31,nota32;
float media1,media2,media3;
};
void setValues(Alunos&);
void getValues(const Alunos&);
void setValues(Alunos& alu)
{
cout<< "Informe o nome do aluno 1: ";
getline(cin, alu.nome1);
cout<< "Informe a primeira nota : ";
cin>> alu.nota11;
cin.ignore();
cout<< "Informe a segunda nota : ";
cin>> alu.nota12;
cin.ignore();
alu.media1 = (alu.nota11 + alu.nota12)/2;
cout<< "Informe o nome do aluno 2: ";
getline(cin, alu.nome2);
cout<< "Informe a primeira nota : ";
cin>> alu.nota21;
cin.ignore();
cout<< "Informe a segunda nota : ";
cin>> alu.nota22;
cin.ignore();
alu.media2 = (alu.nota21 + alu.nota22)/2;
cout<< "Informe o nome do aluno 3: ";
getline(cin, alu.nome3);
cout<< "Informe a primeira nota : ";
cin>> alu.nota31;
cin.ignore();
cout<< "Informe a segunda nota : ";
cin>> alu.nota32;
cin.ignore();
alu.media3 = (alu.nota31 + alu.nota32)/2;
}
void getValues(const Alunos&alu)
{
cout<< "Nome: " << alu.nome1<< endl;
cout<< "A media é: " << alu.media1<< endl;
}
int main()
{
Alunos a1;
int n;
setValues(a1);
cout<<endl;
cout<< "Informando dados sobre o aluno:\n";
cout<< "======================\n";
cout<<"pressione 1 e 0 para continuar para apagar um aluno\n";
cin>>n;
getValues(a1);
return 0;
}

utor para essa classe em c, vem como chamá-los dentro do main.

Será que alguém poderia me ajudar ? :(

Já tentei de todas as formas, mas o código não compilava, então deixei só a parte de compila.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Cavernoso

#include <iostream>
#include <cstdlib>
#include <string>

using namespace std;
// questao 2
class Alunos
{
public:
	string nome1;
	string nome2;
	string nome3;
	int nota11, nota12, nota21, nota22, nota31, nota32;
	float media1, media2, media3;
};
void setValues(Alunos&);
void getValues(const Alunos&);
void setValues(Alunos& alu)
{
	cout << "Informe o nome do aluno 1: ";
	getline(cin, alu.nome1);
	cout << "Informe a primeira nota : ";
	cin >> alu.nota11;
	cin.ignore();
	cout << "Informe a segunda nota : ";
	cin >> alu.nota12;
	cin.ignore();
	alu.media1 = (alu.nota11 + alu.nota12) / 2;
	cout << "Informe o nome do aluno 2: ";
	getline(cin, alu.nome2);
	cout << "Informe a primeira nota : ";
	cin >> alu.nota21;
	cin.ignore();
	cout << "Informe a segunda nota : ";
	cin >> alu.nota22;
	cin.ignore();
	alu.media2 = (alu.nota21 + alu.nota22) / 2;
	cout << "Informe o nome do aluno 3: ";
	getline(cin, alu.nome3);
	cout << "Informe a primeira nota : ";
	cin >> alu.nota31;
	cin.ignore();
	cout << "Informe a segunda nota : ";
	cin >> alu.nota32;
	cin.ignore();
	alu.media3 = (alu.nota31 + alu.nota32) / 2;
}
void getValues(const Alunos&alu)
{
	cout << "Nome: " << alu.nome1 << endl;
	cout << "A media é: " << alu.media1 << endl;
}
int main()
{
	Alunos a1;
	int n;
	setValues(a1);
	cout << endl;
	cout << "Informando dados sobre o aluno:\n";
	cout << "======================\n";
	cout << "pressione 1 e 0 para continuar para apagar um aluno\n";
	cin >> n;
	getValues(a1);
	return 0;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@idkgabz Construtores devem ser declarados em public(salvas exceções, como singletons, por exemplo), dessa maneira:
 

class Alunos
{
  public:
  	Alunos(){/* Seu código aqui */};
}

E podem ser chamados de duas maneiras...
Normal:
 

Alunos meuAluno = Alunos(); //parenteses é opcional nesse caso 

Ponteiro:
 

Alunos meuAluno* = new Alunos();

Destrutores são chamados sempre que um objeto deixa de existir, seja porque foi usado delete ou por ter atingido o fim de seu escopo. A declaração de destrutores é feita da mesma maneira que construtores, exceto que se usa um til(~) antes do nome da classe.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×