Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Membros Estáticos da Classe | Fundamentos de POO em C++
C++ Poo
course content

Conteúdo do Curso

C++ Poo

C++ Poo

1. Fundamentos de POO em C++
2. Construtores e Destrutores
3. Visão Geral do Encapsulamento
4. Visão Geral de Herança
5. Visão Geral do Polimorfismo

book
Membros Estáticos da Classe

Na programação orientada a objetos, a palavra-chave static possui um significado especial, alterando o comportamento de atributos e métodos. Existem cenários em que é necessário que certos dados sejam compartilhados entre todos os objetos de uma classe, em vez de serem replicados para cada instância. É nesse contexto que os membros de dados estáticos são utilizados.

Sintaxe dos Membros Estáticos

Criar um membro estático de uma classe é simples. Basta adicionar a palavra-chave static antes da declaração.

Example.h

Example.h

copy
12345
class Example { public: static int static_attibute; static void static_method() { std::cout << "Static method!" << std::endl; } };

No exemplo acima, static_attribute e static_method() são declarados como membros de dados estáticos da class Example. Diferente dos membros de dados regulares, os membros de dados estáticos estão associados à classe em si, e não a objetos individuais. Isso significa que todas as instâncias de Example compartilham os mesmos membros estáticos.

A inicialização é fundamental para membros de dados estáticos, e deve ser feita fora da classe, a menos que o membro também utilize a palavra-chave const.

FirstExample.h

FirstExample.h

SecondExample.h

SecondExample.h

copy
1234567
class Example { public: static int static_attribute; static void static_method() { std::cout << "Static method!" << std::endl; } }; int Example::static_attribute = 0;

Benefícios do Uso de Membros Estáticos

O uso de membros de dados estáticos e funções membros estáticas oferece diversos benefícios.

main.cpp

main.cpp

copy
12345678910111213141516171819202122
#include <iostream> class Example { public: static int static_attribute; static void static_method() { std::cout << "Static method!" << std::endl; } }; // Initialization of the static member variable int Example::static_attribute = 0; int main() { Example obj1, obj2; obj1.static_attribute = 100; // Modifying static_attribute through obj1 std::cout << obj1.static_attribute << std::endl; std::cout << obj2.static_attribute << std::endl; Example::static_attribute = 25; // Modifying static_attribute through class Example::static_method(); // Calling the static method through class }
question mark

Qual das seguintes afirmações sobre variáveis membros estáticas é verdadeira?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 6

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

course content

Conteúdo do Curso

C++ Poo

C++ Poo

1. Fundamentos de POO em C++
2. Construtores e Destrutores
3. Visão Geral do Encapsulamento
4. Visão Geral de Herança
5. Visão Geral do Polimorfismo

book
Membros Estáticos da Classe

Na programação orientada a objetos, a palavra-chave static possui um significado especial, alterando o comportamento de atributos e métodos. Existem cenários em que é necessário que certos dados sejam compartilhados entre todos os objetos de uma classe, em vez de serem replicados para cada instância. É nesse contexto que os membros de dados estáticos são utilizados.

Sintaxe dos Membros Estáticos

Criar um membro estático de uma classe é simples. Basta adicionar a palavra-chave static antes da declaração.

Example.h

Example.h

copy
12345
class Example { public: static int static_attibute; static void static_method() { std::cout << "Static method!" << std::endl; } };

No exemplo acima, static_attribute e static_method() são declarados como membros de dados estáticos da class Example. Diferente dos membros de dados regulares, os membros de dados estáticos estão associados à classe em si, e não a objetos individuais. Isso significa que todas as instâncias de Example compartilham os mesmos membros estáticos.

A inicialização é fundamental para membros de dados estáticos, e deve ser feita fora da classe, a menos que o membro também utilize a palavra-chave const.

FirstExample.h

FirstExample.h

SecondExample.h

SecondExample.h

copy
1234567
class Example { public: static int static_attribute; static void static_method() { std::cout << "Static method!" << std::endl; } }; int Example::static_attribute = 0;

Benefícios do Uso de Membros Estáticos

O uso de membros de dados estáticos e funções membros estáticas oferece diversos benefícios.

main.cpp

main.cpp

copy
12345678910111213141516171819202122
#include <iostream> class Example { public: static int static_attribute; static void static_method() { std::cout << "Static method!" << std::endl; } }; // Initialization of the static member variable int Example::static_attribute = 0; int main() { Example obj1, obj2; obj1.static_attribute = 100; // Modifying static_attribute through obj1 std::cout << obj1.static_attribute << std::endl; std::cout << obj2.static_attribute << std::endl; Example::static_attribute = 25; // Modifying static_attribute through class Example::static_method(); // Calling the static method through class }
question mark

Qual das seguintes afirmações sobre variáveis membros estáticas é verdadeira?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 6
some-alt