•
Classes
Parte 2
Copia de
Membros por default
Os valores de uma
classe podem ser copiados para outras classes, desde que a classe que irá
receber os valores seje do mesmo tipo. Esse comando é executado membro
por membro.
Observeção:
É perigoso copiar membros quando as classes contém dados alocados
dinamicamente.
Exemplo de copia:
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
class date
{
public:
date( int d = 1, int m = 1, int y = 1990
);
void imprime();
private:
int day, month, year;
};
date::date(
int d, int m, int y ) // construtor
{
day = d;
month = m;
year = y;
}
void date::imprime()
{
cout << day << "/" << month <<
"/" << year << endl;
}
int main()
{
date hoje( 20, 4, 2004), branco;
// hoje é iniciado e branco fica
com 0;
hoje.imprime();
branco.imprime();
branco
= hoje; // Atribuição por copia de membros
branco.imprime();
cin;
return
0;
}
Classes
por referência
Podemos acessar
variáveis ou funções de classes em funções
normais passando as classes por referencia.
Ainda assim, não podemos acessar váriaveis privadas e nem funções
privadas.
#include <iostream>
class numero
{
private:
int num;
public:
numero(); //
construtor
void add();
void imprimir();
};
numero::numero()
{
num = 0;
}
void numero::add()
{
num += 1;
}
void numero::imprimir()
{
std::cout << num << std::endl;
}
void mais(
numero & ); // prototipo de função
global, que recebe a classe como um tipo
int main()
{
numero contador;
contador.imprimir();
contador.add();
contador.imprimir();
mais(
contador );
std::cin;
return
0;
}
void mais(
numero &classe )
{
classe.imprimir();
classe.add();
classe.imprimir();
}
Perguntas??? Email
|