• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

saramgsilva

o que significa usar static e o virtual

4 mensagens neste tópico

boas, tenho uma duvida estou a estudar C++ pro exame de poo, e nao entendi muito bem pra que ser o sufixo static e o virtual...uso muito nas classes...humm ja andei a procura,mas ainda nao percebi.. :D

obrigada

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vamos lá tentar explicar isso:

O sufixo "static" permite que as variáveis ou funções que tu declarares de uma classe sejam independentes dos objectos que criares dessa classe. Por exemplos

#include <iostream>
using namespace std;

class pessoa
{
    public:
        void Ola() { cout << "Olá!" << endl; }

        static int numero;

        static void LerNumero() { cout << "Numero = " << numero << endl; }
};

int pessoa::numero = 3;

int main()
{
    pessoa::LerNumero();
    pessoa tofas;
    tofas.Ola();
    system("Pause");
    return 0;
}

Como podes ver, para usar a variável numero e a função LerNumero(), não é perciso criar uma instância de pessoa, porque são static, mas para a função Ola() já é perciso.

Agora o sufixo "virtual" é para permitir que uma função de uma classe mãe, possa ser substituida por uma função da classe filha.

class mae
{
   public:
      void virtual Ola() { cout << "Olá!";}
};

class filha : public mae
{
   public:
      void virtual Ola() { cout << "Olaaaaaaaaaaaaa!";}
};

Assim, se fiizermos uma instância de filha e chamarmos a função Ola(), o texto será da última função, a da classe filha.

Espero que tenhas percebido alguma coisa do que eu meti para ali, se tiveres mais dúvidas pergunta.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

li bue de cenas...e ja tinha percebido...e agora que li isto teu, acentei as ideias...curti milhoes, acho k explicaste mto bem...so fique  :hmm: com

void virtual Ola() { cout << "Olaaaaaaaaaaaaa!";}

eu uso sempre

  virtual void Ola() { cout << "Olaaaaaaaaaaaaa!";}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora