Ir ao conteúdo
  • Cadastre-se

Construtores


ailujana

Posts recomendados

Estou criando um jogo de padel(igual ao pong, mas com apenas 1 jogador) em C++, porém estou com uma dúvida em relação a usar UM construtor para inicializar a bola e o jogador ou utilizar DOIS construtores (como está no código)...

Se eu utilizar um construtor apenas, eu vou ter que enviar as posições iniciais como parametro e ainda enviar mais algum parametro para identificar se o objeto é a bola ou o jogador.

Qual é mais correto? utilizar um construtor e colocar testes para identificar qual objeto está sendo inicializado através de testes ou utilizar 2 construtores e não se preucupar com isso?

:confused:


class Padel
{
private:
int posini_x, posini_y, pos_x, pos_y, sentido, sentidoini, y;
char ch1, ch2;
Placar p;
public:
Padel(); /* inicializa a bola */
Padel(int n); /* inicializa o jogador */
void inicializa(); /* reinicializa a bola */
void movimentobola();
void rebater();
void movejogador(int dir);
};

Padel::Padel() /* construtor da bola */
{
sentidoini=3;
sentido=sentidoini; /* sentido do movimento da bola: 1=noroeste, 2=nordeste, 3=sudoeste, 4=sudeste */
posini_x=79; /* coordenadas da bola no inicio do jogo */
posini_y=11;
pos_x=posini_x;
pos_y=posini_y;
gotoxy(posini_x, posini_y);
cout << char(254);
}

Padel::Padel(int n) /* construtor do jogador */
{
pos_x=3; /* coloca o jogador na posicao inicial */
pos_y=9;
for(y=pos_y; y<=pos_y+4; y++)
{
gotoxy(pos_x, y);
cout << char(219);
}
}

Link para o comentário
Compartilhar em outros sites

Estou criando um jogo de padel(igual ao pong, mas com apenas 1 jogador) em C++, porém estou com uma dúvida em relação a usar UM construtor para inicializar a bola e o jogador ou utilizar DOIS construtores (como está no código)...

Se eu utilizar um construtor apenas, eu vou ter que enviar as posições iniciais como parametro e ainda enviar mais algum parametro para identificar se o objeto é a bola ou o jogador.

Qual é mais correto? utilizar um construtor e colocar testes para identificar qual objeto está sendo inicializado através de testes ou utilizar 2 construtores e não se preucupar com isso?

:confused:


class Padel
{
private:
int posini_x, posini_y, pos_x, pos_y, sentido, sentidoini, y;
char ch1, ch2;
Placar p;
public:
Padel(); /* inicializa a bola */
Padel(int n); /* inicializa o jogador */
void inicializa(); /* reinicializa a bola */
void movimentobola();
void rebater();
void movejogador(int dir);
};

Padel::Padel() /* construtor da bola */
{
sentidoini=3;
sentido=sentidoini; /* sentido do movimento da bola: 1=noroeste, 2=nordeste, 3=sudoeste, 4=sudeste */
posini_x=79; /* coordenadas da bola no inicio do jogo */
posini_y=11;
pos_x=posini_x;
pos_y=posini_y;
gotoxy(posini_x, posini_y);
cout << char(254);
}

Padel::Padel(int n) /* construtor do jogador */
{
pos_x=3; /* coloca o jogador na posicao inicial */
pos_y=9;
for(y=pos_y; y<=pos_y+4; y++)
{
gotoxy(pos_x, y);
cout << char(219);
}
}

não e preciso fazer testes para identificar qual objeto esta usando...

vamos lá

o que diferencia 2 funções com o mesmo nome? r: e a sua assinatura.

assim serve para os construtores.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!