Classes e objetos C ++

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

Em 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 mais 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 lugar (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 projeto para o objeto.
Podemos pensar em uma classe 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.

Crie uma classe

Uma classe é definida em C ++ usando a palavra-chave classseguida pelo nome da classe.

O corpo da classe é definido entre chaves e terminado 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 declaradas dentro da classe são conhecidas como membros de dados . E as funções calculateArea()e calculateVolume()são conhecidas como funções-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 definidas na classe, precisamos criar objetos.

Sintaxe para definir objeto em C ++

 className objectVariableName;

Podemos criar objetos de Roomclasse (definidos no exemplo acima) da seguinte maneira:

 // sample function void sampleFunction() ( // create objects Room room1, room2; ) int main()( // create objects Room room3, room4; )

Aqui, dois objetos room1 e room2 da Roomclasse são criados em sampleFunction(). Da mesma forma, os objetos room3 e room4 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 de membro de uma classe usando um .operador (ponto). Por exemplo,

 room2.calculateArea();

Isso chamará a calculateArea()função dentro da Roomclasse para o objeto room2.

Da mesma forma, os membros de dados podem ser acessados ​​como:

 room1.length = 5.5;

Nesse caso, ele inicializa a variável de comprimento de room1 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 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; )

Resultado

 Área da Sala = 1309 Volume da Sala = 25132,8

Neste programa, usamos a Roomclasse e seu objeto sala1 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 publicno programa. Isso significa que os membros são públicos e podem ser acessados ​​de qualquer lugar do programa.

De acordo com nossas necessidades, também podemos criar membros privados usando a privatepalavra - 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() ( ) ) Here, a and function1() are private and are. Thus they cannot be accessed from outside the class.

Por outro lado, b e function2()estão acessíveis em qualquer parte do programa.

Para saber mais sobre palavras-chave públicas e privadas, visite nosso tutorial de 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 using namespace std; class Room ( private: double length; double breadth; double height; public: // function to initialize private variables void getData(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.getData(42.5, 30.8, 19.2); cout << "Area of Room = " << room1.calculateArea() << endl; cout << "Volume of Room = " << room1.calculateVolume() << endl; return 0; )

Resultado

 Área da Sala = 1309 Volume da Sala = 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 getData()para inicializar as variáveis privadas através dos parâmetros da função double len, double brthe double hgt.

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

  • Construtores C ++
  • Como passar e retornar um objeto de uma função?

Artigos interessantes...