Ir para conteúdo
Fórum Script Brasil

tifian

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre tifian

tifian's Achievements

0

Reputação

  1. Olá, estou iniciando no c++ e aprendi agora o static e construtores e estou fazendo um codigo e não funciona uma coisinha, colocarei o codigo e dps digo o problema. //Trabalho #include <iostream.h> #include <conio.h> class aluno { private: int serie, grau; char nome[20]; static int n; public: aluno() {n++;} ~aluno() {n--;} void inseredados() { cout <<"\n Digite seu nome: "; cin >> nome; cout <<"\n Digite sua serie: "; cin >> serie; cout <<"\n Digite o grau: "; cin >> grau; printdata(); } void printdata() { cout <<"\n Nome do aluno: " << nome; cout <<"\n Serie do aluno: "<< serie; cout <<"\n Grau do aluno: " << grau; } int numalunos() const { return n; } }; int aluno::n = 0; const MAX=10; void main() { aluno A[MAX],x; int i=0,y; char resp; do{ A[i].inseredados(); cout <<"\n Adicionar mais um aluno? (s/n)"; cin >> resp; } while(resp != 'n' && i<MAX); y = x.numalunos()-1; cout <<"\n Numero de alunos: " << y; getch(); } Então a variavel static n, era pra guarda quantos alunos eu botasse, o que eu aprendi (e em outro exemplo deu certo). É que colocando o n++ ali dentro do construtor, cada vez que eu crio um objeto ele incrementa o n. Mas nesse caso como o vetor tem 10 posiçoes ele logo de cara fica 10 no n, e não muda. Mesmo q eu cadastre só 2 alunos, ou seja 2 objetos. Ele sempre dá 10. O que posso fazer? Abraço
×
×
  • Criar Novo...