Ir para conteúdo
Fórum Script Brasil
  • 0

erro de variável não declarada neste escopo[Resolvido]


asantos38

Pergunta

Boa tarde e feliz natal a todos.

Estou tentando fazer um programa utilizando o conhecimento que aprendi sobre POO. Meu programa consiste em um cadastro de alunos onde posso cadastrar seu nome, identidade e as notas de quatro bimestres. Alguns erros consegui sanar, mas o erro citado no título deste tópico não.

Segue o código e a mensagem de erro:

main.cpp:

#include <iostream>
#include "estudante.h"

using namespace std; 


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

	e.cadastrarEstudante();

	e.cadastrarNotas();

	return 0;
}

 

estudante.h

#ifndef ESTUDANTE_H_INCLUDED
#define ETUDANTE_H_INCLUDED

class Estudante{
	friend void cadastrar_notas_bimestrais(short bimestre);

	protected:
		char *nome;
		int identidade;
		//Notas das provas.
		float matematica[4];
		float portugues[4];
		float historia[4];
	public:
		const char* getNome();
		int getId();
		void cadastrarNotas();
		void cadastrarEstudante();
		~Estudante();
};

#endif

estudante.cpp:

#include "estudante.h"
#include <cstdlib>
#include <cstring>
#include <iostream>

using namespace std;

void cadastrar_notas_bimestrais(short bimestre){
	cout << "Nota de matemática: ";
	cin >> matematica[bimestre - 1];
	cout << "Nota de português: ";
	cin >> portugues[bimestre - 1];
	cout << "Nota história: ";
	cin >> historia[bimestre - 1];
}

Estudante::~Estudante(){
	delete[] nome;

	nome = 0;
}

const char* Estudante::getNome(){
	return nome;
}

int Estudante::getId(){
	return identidade;
}

void Estudante::cadastrarNotas(){
	short bimestre;

	system("clear");

	cout << "Cadastro de notas\n\n\n";

	cout << "Informe o bimestre:";

	cin >> bimestre;

	switch(bimestre){
		case 1: cadastrar_notas_bimestrais(bimestre);
			break;
		case 2: cadastrar_notas_bimestrais(bimestre);
			break;
		case 3: cadastrar_notas_bimestrais(bimestre);
			break;
		case 4: cadastrar_notas_bimestrais(bimestre);
			break;
	}

	cout << "\n\n\nNotas cadastradas com sucesso!";
}

void Estudante::cadastrarEstudante(){
	char nome[41];
	
	system("clear");

	cout << "Cadastro de Aluno\n\n\n";
	
	cout << "Nome completo: ";

	cin.getline(nome, 41);

	this->nome = new char[strlen(nome) + 1];

	strcpy(this->nome, nome);

	cout << "Identidade: ";

	cin >> identidade;

	cout << "\n\ncadastro realizado com sucesso!";
}

Mensagem de erro:

pai@demas:~/Projetos/C++/projeto03$ g++ -o prog estudante.cpp main.cpp
estudante.cpp: In function ‘void cadastrar_notas_bimestrais(short int)’:
estudante.cpp:10:9: error: ‘matematica’ was not declared in this scope
  cin >> matematica[bimestre - 1];
         ^~~~~~~~~~
estudante.cpp:12:9: error: ‘portugues’ was not declared in this scope
  cin >> portugues[bimestre - 1];
         ^~~~~~~~~
estudante.cpp:14:9: error: ‘historia’ was not declared in this scope
  cin >> historia[bimestre - 1];
         ^~~~~~~~


Desde já agradeço.

Editado por asantos38
problema resolvido
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Isto é um projeto de codeblocks ou devc++? Ou simplesmente você está usando o console para compilar? Ao parecer o comando " pai@demas:~/Projetos/C++/projeto03$ g++ -o prog estudante.cpp main.cpp
estudante.cpp:" parece estar errado já que repete estudante.cpp duas vezes. Não seria um .h e um .cpp?

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde, vangodp. Olhando com mais calma, consegui encontrar o erro. cadastrar_notas_bimestrais foi declarada friend da classe Estudante, mas não referenciei um objeto da classe como argumento da função. Por isso o erro, pois a função não tinha como ter acesso aos dados do objeto.Mas agradeço pelo seu interesse.

Abraços e feliz ano novo!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...