POO, conceitos (Cap-05, Memoria dinâmica)
#arrays de objetos
os arrays de objetos
#include "pch.h"
#include <iostream>
#include <string>
using namespace std;
class Ponto {
int x, y;
public:
Ponto(int x0 = 0, int y0 = 0);
~Ponto();
};
int main()
{
//ou indicamos o construtor que queremos usar
Ponto a[] = { Ponto(1,3), Ponto(2,4), Ponto(5,7) };
Ponto b[] = { {1,3}, {2,4},{5,7} };
//ou usamos o construtor por omissão
Ponto c[3];
Ponto d[3] = { Ponto(1,3) };
system("pause");
}
//main
#include "Relogio.h"
int main()
{
{
Relogio a[10]; //criar um array de 10 objetos
}
system("pause");
}
//Relogio.cpp
#include "Relogio.h"
Relogio::Relogio(int hora, int minuto, int segundo)
{
cout << "Relogio criado" << endl;
}
Relogio::~Relogio()
{
cout << "Relogio destruido" << endl;
}
//Relogio.h
#pragma once
#include "pch.h"
#include <iostream>
#include <string>
using namespace std;
class Relogio
{
public:
Relogio(int hora = 0, int minuto = 0, int segundo = 0);
~Relogio();
};
#variaveis em memoria dinâmica
o uso do operador new permite criar um objecto até ser explicitamente destruido com o operador delete
pVar = new tipo; //ponteiro para um endereço
delete pVar;
ou podemos usar da seguinte forma
int *v1 = new int(4); //valor inicial a 4
delete v1;
#objectos em memoria dinâmica
ou aplicar a uma classe
#include "pch.h"
#include <iostream>
#include <string>
using namespace std;
class Ponto {
int x, y;
public:
Ponto() {
x = 0; y = 0;
cout << "construindo" << endl;
};
~Ponto() { cout << "destruindo" << endl; };
void imprimir() { cout << "valor x=" << x << " valor de y=" << y << endl; }
};
int main()
{
{
//usar memoria dinamica
Ponto *p = new Ponto;
p->imprimir();
delete p;
}
system("pause");
}
#arrays dinamicos de objetos
para criar um é necessário fazer:
pVar = new tipo[dim];
para libertar a memoria:
delete [] pVar;
#include "pch.h"
#include <iostream>
#include <string>
using namespace std;
class Ponto {
int x, y;
public:
Ponto() {
x = 0; y = 0;
cout << "construindo" << endl;
};
~Ponto() { cout << "destruindo" << endl; };
void imprimir() { cout << "valor x=" << x << " valor de y=" << y << endl; }
};
int main()
{
{
//usar arrays dinamico de objectos, com construtor e destrutir para cada elemento
Ponto *p = new Ponto[4];
for (int i = 0; i < 4; i++) {
p[i].imprimir();
}
delete [] p;
}
system("pause");
}
Tags : arrays de objetos, cap05, Memoria dinamica, POO
0 thoughts on “POO, conceitos (Cap-05, Memoria dinâmica)”