Ir ao conteúdo

Posts recomendados

Postado

Olá pessoal. Eu gostaria de saber o porquê de uma função-membro estática só poder acessar outros membros estáticos em uma classe.

Postado

Lembre-se que membros estáticos são compartilhados por todos as instâncias das classes. 

Suponha que fosse permitido um membro estático acessar membro não estáticos da classe.

#include <iostream>
using namespace std;
class Teste
{
    
    public:
        int atributo_nao_estatico;
        static int membro_estatico () {return atributo_nao_estatico;};      
};

int main()
{
    Teste c1, c2;
    c1.atributo_nao_estatico = 0;
    c2.atributo_nao_estatico = 1;
    cout << Teste::membro_estatico(); 
    return 0;
}

O resultado do programa acima iria imprimir o quê? 0 ou 1? Na sua opinião qual dos atributos o método "membro_estatico" iria retornar? O atributo da instância c1 (=0) ou da instância c2 (=1)? Ficou em dúvida? Então, o compilador também ficaria...

 

 

  • Curtir 1
Postado
2 horas atrás, Bimetal disse:

o porquê de uma função-membro estática só poder acessar outros membros estáticos em uma classe

 

Olá!

 

O que não é estático não existe até ser "inaugurado" pelo construtor em alguma instância e aí existe em cada instância. Os componentes estáticos são, digamos, estáticos, e só tem uma versão:: classe::membro

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!