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