Como usar membros estáticos em c ++

Em C ++, você pode declarar um membro para ser compartilhado por todos os objetos de uma classe ao declarar que membro estático. Um membro de dados estáticos em C ++ é aquele que foi declarada com o estático

classe de armazenamento, como mostrado a seguir:

Video: Curso de C++ -42- POO. Atributos static de una clase

classe Student {public: Estudante (char * pName = "no name"): Nome (pName) {noOfStudents ++ -} ~ Student () {noOfStudents ---} int nome noOfStudents-corda estática -} - Student S1-Student S2-

O membro de dados noOfStudents faz parte da classe Aluna mas não é parte de qualquer s1 ou s2. Ou seja, para cada objeto da classe Aluna, há uma separado nome, mas há apenas um noOfStudents, qual todos estudantes devem compartilhar.

Video: Curso de C++ 83 Métodos Estáticos

“Bem, então”, você pergunta “, se o espaço para noOfStudents não é alocado em qualquer um dos objetos da classe Aluna, ? Onde está alocado”A resposta é:‘Não é’Você tem que alocar especificamente espaço para ele, como se segue.:



int Student :: noOfStudents = 0-

Esta sintaxe um pouco de aparência peculiar aloca espaço para o membro de dados estáticos e inicializa-lo para 0. (Você não tem que inicializar um membro estático quando você declara ele- C ++ irá chamar o construtor padrão se você não faz.) Os dados estáticos membros deve ser global - uma variável estática não pode ser local para uma função.

Video: Universidade XTI - JAVA - 041 - Variáveis e Métodos Estáticos

O nome da classe é necessário para qualquer membro quando ele aparece fora de seus limites de classe.

Este negócio de alocar espaço manualmente é um pouco confuso até que você considere que as definições de classe são projetados para ir em arquivos que estão incluídos por vários módulos de código-fonte. C ++ tem de saber em qual desses arquivos de origem .cpp para alocar espaço para a variável estática. Este não é um problema com variáveis ​​não-estáticas porque o espaço é alocado em cada objeto criado.


Publicações relacionadas