Classes e objetos C ++

O principal objetivo da programação C ++ é adicionar orientação a objetos à linguagem de programação C e as classes são o recurso central do C ++ que oferece suporte à programação orientada a objetos e são freqüentemente chamados de tipos definidos pelo usuário.

Uma classe é usada para especificar a forma de um objeto e combina representação de dados e métodos para manipular esses dados em um pacote organizado. Os dados e funções dentro de uma classe são chamados de membros da classe.

Definições de classe C ++

Ao definir uma classe, você define um blueprint para um tipo de dados. Na verdade, isso não define nenhum dado, mas define o que significa o nome da classe, ou seja, em que consistirá um objeto da classe e quais operações podem ser executadas nesse objeto.

Uma definição de classe começa com a palavra-chave classseguido pelo nome da classe; e o corpo da classe, delimitado por um par de chaves. Uma definição de classe deve ser seguida por um ponto e vírgula ou uma lista de declarações. Por exemplo, definimos o tipo de dados Box usando a palavra-chaveclass como segue -

class Box {
   public:
      double length;   // Length of a box
      double breadth;  // Breadth of a box
      double height;   // Height of a box
};

A palavra-chave publicdetermina os atributos de acesso dos membros da classe que o segue. Um membro público pode ser acessado de fora da classe em qualquer lugar dentro do escopo do objeto de classe. Você também pode especificar os membros de uma classe comoprivate ou protected que discutiremos em uma subseção.

Definir objetos C ++

Uma classe fornece os blueprints para objetos, portanto, basicamente, um objeto é criado a partir de uma classe. Declaramos objetos de uma classe exatamente com o mesmo tipo de declaração com que declaramos variáveis ​​de tipos básicos. As seguintes declarações declaram dois objetos da classe Box -

Box Box1;          // Declare Box1 of type Box
Box Box2;          // Declare Box2 of type Box

Ambos os objetos Box1 e Box2 terão sua própria cópia dos membros de dados.

Acessando os Membros de Dados

Os membros de dados públicos de objetos de uma classe podem ser acessados ​​usando o operador de acesso direto ao membro (.). Vamos tentar o seguinte exemplo para deixar as coisas claras -

#include <iostream>

using namespace std;

class Box {
   public:
      double length;   // Length of a box
      double breadth;  // Breadth of a box
      double height;   // Height of a box
};

int main() {
   Box Box1;        // Declare Box1 of type Box
   Box Box2;        // Declare Box2 of type Box
   double volume = 0.0;     // Store the volume of a box here
 
   // box 1 specification
   Box1.height = 5.0; 
   Box1.length = 6.0; 
   Box1.breadth = 7.0;

   // box 2 specification
   Box2.height = 10.0;
   Box2.length = 12.0;
   Box2.breadth = 13.0;
   
   // volume of box 1
   volume = Box1.height * Box1.length * Box1.breadth;
   cout << "Volume of Box1 : " << volume <<endl;

   // volume of box 2
   volume = Box2.height * Box2.length * Box2.breadth;
   cout << "Volume of Box2 : " << volume <<endl;
   return 0;
}

Quando o código acima é compilado e executado, ele produz o seguinte resultado -

Volume of Box1 : 210
Volume of Box2 : 1560

É importante observar que membros privados e protegidos não podem ser acessados ​​diretamente usando o operador de acesso direto ao membro (.). Aprenderemos como membros privados e protegidos podem ser acessados.

Classes e objetos em detalhes

Até agora, você tem uma ideia muito básica sobre classes e objetos C ++. Existem outros conceitos interessantes relacionados a classes e objetos C ++ que discutiremos em várias subseções listadas abaixo -

Sr. Não Conceito e descrição
1 Funções de membro de classe

Uma função de membro de uma classe é uma função que tem sua definição ou seu protótipo dentro da definição de classe como qualquer outra variável.

2 Modificadores de acesso de classe

Um membro da classe pode ser definido como público, privado ou protegido. Por padrão, os membros seriam considerados privados.

3 Construtor e Destruidor

Um construtor de classe é uma função especial em uma classe que é chamada quando um novo objeto da classe é criado. Um destruidor também é uma função especial que é chamada quando o objeto criado é excluído.

4 Copiar construtor

O construtor de cópia é um construtor que cria um objeto inicializando-o com um objeto da mesma classe, que foi criado anteriormente.

5 Funções de amigo

UMA friend função é permitido o acesso total a membros privados e protegidos de uma classe.

6 Funções Inline

Com uma função embutida, o compilador tenta expandir o código no corpo da função no lugar de uma chamada para a função.

7 este ponteiro

Cada objeto tem um ponteiro especial this que aponta para o próprio objeto.

8 Ponteiro para classes C ++

Um ponteiro para uma classe é feito exatamente da mesma maneira que um ponteiro para uma estrutura. Na verdade, uma classe é apenas uma estrutura com funções.

9 Membros estáticos de uma classe

Os membros de dados e membros de função de uma classe podem ser declarados como estáticos.