Jump to content
Sign in to follow this  
saramgsilva

o que significa usar static e o virtual

Recommended Posts

neon_prannock

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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.