Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Classes e objetos C++

Classes e objetos C++


Neste tutorial, aprenderemos sobre objetos e classes e como usá-los em C++ com a ajuda de exemplos.

Nos tutoriais anteriores, aprendemos sobre funções e variáveis. Às vezes é desejável colocar funções e dados relacionados em um só lugar para que seja lógico e fácil de trabalhar.

Suponha que precisamos armazenar o comprimento, a largura e a altura de uma sala retangular e calcular sua área e volume.

Para lidar com essa tarefa, podemos criar três variáveis, digamos, comprimento , largura , e altura junto com as funções calculateArea() e calculateVolume() .

No entanto, em C++, em vez de criar variáveis ​​e funções separadas, também podemos agrupar esses dados e funções relacionadas em um único local (criando objetos ). Este paradigma de programação é conhecido como programação orientada a objetos.

Mas antes que possamos criar objetos e usá-los em C++, primeiro precisamos aprender sobre classes .


Classe C++


Uma classe é um modelo para o objeto.

Podemos pensar em uma aula como um esboço (protótipo) de uma casa. Ele contém todos os detalhes sobre os pisos, portas, janelas, etc. Com base nessas descrições construímos a casa. A casa é o objeto.

Criar uma classe


Uma classe é definida em C++ usando a palavra-chave class seguido do nome da classe.

O corpo da classe é definido dentro das chaves e encerrado por um ponto e vírgula no final.
class className {
   // some data
   // some functions
};

Por exemplo,
class Room {
    public:
        double length;
        double breadth;
        double height;   

        double calculateArea(){   
            return length * breadth;
        }

        double calculateVolume(){   
            return length * breadth * height;
        }

};

Aqui, definimos uma classe chamada Room .

As variáveis ​​comprimento , largura , e altura declarados dentro da classe são conhecidos como membros de dados . E as funções calculateArea() e calculateVolume() são conhecidas como funções de membro de uma classe.

Objetos C++


Quando uma classe é definida, apenas a especificação do objeto é definida; nenhuma memória ou armazenamento é alocado.



Para usar os dados e funções de acesso definidos na classe, precisamos criar objetos.

Sintaxe para definir objeto em C++

className objectVariableName;

Podemos criar objetos de Room class (definida no exemplo acima) da seguinte forma:
// sample function
void sampleFunction() {
    // create objects
    Room room1, room2;
}

int main(){
    // create objects 
    Room room3, room4;
}

Aqui, dois objetos room1 e sala2 do Room classe são criadas em sampleFunction() . Da mesma forma, os objetos room3 e sala 4 são criados em main() .

Como podemos ver, podemos criar objetos de uma classe em qualquer função do programa. Também podemos criar objetos de uma classe dentro da própria classe ou em outras classes.

Além disso, podemos criar quantos objetos quisermos de uma única classe.

Membros de dados de acesso C++ e funções de membro


Podemos acessar os membros de dados e funções-membro de uma classe usando um . operador (ponto). Por exemplo,
room2.calculateArea();

Isso chamará o calculateArea() função dentro do Room classe para o objeto room2 .

Da mesma forma, os membros de dados podem ser acessados ​​como:
room1.length = 5.5;

Neste caso, ele inicializa o comprimento variável de sala1 para 5.5 .

Exemplo 1:Objeto e classe na programação C++

// Program to illustrate the working of
// objects and class in C++ Programming

#include <iostream>
using namespace std;

// create a class
class Room {

   public:
    double length;
    double breadth;
    double height;

    double calculateArea() {
        return length * breadth;
    }

    double calculateVolume() {
        return length * breadth * height;
    }
};

int main() {

    // create object of Room class
    Room room1;

    // assign values to data members
    room1.length = 42.5;
    room1.breadth = 30.8;
    room1.height = 19.2;

    // calculate and display the area and volume of the room
    cout << "Area of Room =  " << room1.calculateArea() << endl;
    cout << "Volume of Room =  " << room1.calculateVolume() << endl;

    return 0;
}

Saída
Area of Room =  1309
Volume of Room =  25132.8

Neste programa, usamos o Room classe e seu objeto room1 para calcular a área e o volume de uma sala.

Em main() , atribuímos os valores de comprimento , largura , e altura com o código:
room1.length = 42.5;
room1.breadth = 30.8;
room1.height = 19.2;

Em seguida, chamamos as funções calculateArea() e calculateVolume() para realizar os cálculos necessários.

Observe o uso da palavra-chave public no programa. Isso significa que os membros são públicos e podem ser acessados ​​em qualquer lugar do programa.

De acordo com nossas necessidades, também podemos criar membros privados usando o private palavra-chave. Os membros privados de uma classe só podem ser acessados ​​de dentro da classe. Por exemplo,

class Test {

private:
    int a;
    void function1() { }

public:
    int b;
    void function2() { }
}

Aqui, um e function1() são privados. Assim, eles não podem ser acessados ​​de fora da classe.

Por outro lado, b e function2() são acessíveis de todos os lugares do programa.

Para saber mais sobre palavras-chave públicas e privadas, visite nosso tutorial sobre modificadores de acesso de classe C++.

Exemplo 2:usando público e privado na classe C++

// Program to illustrate the working of
// public and private in C++ Class

#include <iostream>
using namespace std;

class Room {

   private:
    double length;
    double breadth;
    double height;

   public:

    // function to initialize private variables
    void initData(double len, double brth, double hgt) {
        length = len;
        breadth = brth;
        height = hgt;
    }

    double calculateArea() {
        return length * breadth;
    }

    double calculateVolume() {
        return length * breadth * height;
    }
};

int main() {

    // create object of Room class
    Room room1;

    // pass the values of private variables as arguments
    room1.initData(42.5, 30.8, 19.2);

    cout << "Area of Room =  " << room1.calculateArea() << endl;
    cout << "Volume of Room =  " << room1.calculateVolume() << endl;

    return 0;
}

Saída
Area of Room =  1309
Volume of Room =  25132.8

O exemplo acima é quase idêntico ao primeiro exemplo, exceto que as variáveis ​​de classe agora são privadas.

Como as variáveis ​​agora são privadas, não podemos acessá-las diretamente de main() . Portanto, usar o seguinte código seria inválido:
// invalid code
obj.length = 42.5;
obj.breadth = 30.8;
obj.height = 19.2;

Em vez disso, usamos a função pública initData() para inicializar as variáveis ​​privadas através dos parâmetros da função double len , double brth e double hgt .

Para saber mais sobre objetos e classes, visite estes tópicos:

Linguagem C

  1. Classe e objeto C#
  2. Classe abstrata e método C#
  3. C# Classe Parcial e Método Parcial
  4. Classe e método selados em C#
  5. Função de amigo C++ e classes de amigo
  6. Modelos de classe C++
  7. Classe e objetos Java
  8. Estruturas e classes em C ++
  9. Diferença entre estrutura e classe:explicada com exemplo de C++
  10. Classes de armazenamento em C++