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:
- Construtores C++
- Como passar e retornar um objeto de uma função?
Linguagem C
- Classe e objeto C#
- Classe abstrata e método C#
- C# Classe Parcial e Método Parcial
- Classe e método selados em C#
- Função de amigo C++ e classes de amigo
- Modelos de classe C++
- Classe e objetos Java
- Estruturas e classes em C ++
- Diferença entre estrutura e classe:explicada com exemplo de C++
- Classes de armazenamento em C++