Ir ao conteúdo
  • Cadastre-se

C++ sobrecarga do operador == com arrays


_rsd_17

Posts recomendados

Ola estou a tentar fazer uma sobrecarga do operador ==  para a classe tabuleiro, jogo do galo . Mas da me erro e nao percebo o porque.

 

bool tabuleiro::operator == (const tabuleiro T)const
{
	for (int i = 0; i < 3; ++i)
	{
		for (int j = 0; j < 3; ++j)
		{
			if (tab[i][j] != T[i][j])
			{
				// Return an error, or print "error there is a duplicate value" etc
			}
		}
	}
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Olá! Tudo certo?

Então ...

 

Eu acho que entendi um pouco do seu problema; porém antes gostaria de confirma 100% disso. Diga-me, você tem para esse class um método que compara duas instâncias dessa mesma classe? Aproposito, qual livro você está usando como referência de estudo?

Link para o comentário
Compartilhar em outros sites

@AnsiC nao estou usando nenhum livro, é para a cadeira de lab temos que criar o jogo do galo

na classe tabuleiro tenho:

.cpp:

#include "pch.h"
#include "tabuleiro.h"
#include <iostream>

using namespace std;

tabuleiro::tabuleiro()
{//CONSTRUTOR POR DEFEITO

	int x, y;
	sup_esq.Set_x(20);
	sup_esq.Set_y(15);
	//A MATRIZ É INICIALIZADA A ZEROS
	for (x = 0; x< 3; x++) {
		for (y = 0; y < 3; y++) {
			tab[x][y] = ' ';
		}
	}
}


tabuleiro::~tabuleiro()
{//DESTRUTOR
}

void tabuleiro::desenhar(void)
{
	cout << "\n\n\n\n";
	cout << "\n" << "\t 1   2   3\n\n\n"; // coloca os numeros   0, 1 e 2 para identificar ao jogador as  colunas da matriz : na linha -
	cout << "    1" << "\t";//coloca  o 0 na  primeira linha da matriz para indicar a primeira linha ao jogador : na lateral |

	//desenha a parte inicial da matriz
	cout << tab[0][0] << "  | " << tab[0][1] << " | " << tab[0][2] << "\n" << "\t---|---|--- \n";
	//coloca  o 1 na  segunda linha da matriz para indicar a segunda linha ao jogador : na lateral |
	cout << "    2" << " \t";
	//desenha a parte central da matriz
	cout << tab[1][0] << "  |" << tab[1][1] << "  | " << tab[1][2] << "\n" << "\t---|---|---\n";
	//coloca  o 2 na  terceira linha da matriz para indicar a terceira linha : na lateral |
	cout << "    3" << "\t";
	//desenha a parte final da matriz
	cout << tab[2][0] << "  |" << tab[2][1] << "  | " << tab[2][2] << "\n" << endl;
	cout << "\n \n ";

}

void tabuleiro::gotoxy(int x, int y)
{
	CursorPosition.X = x;
	CursorPosition.Y = y;
	SetConsoleCursorPosition(console, CursorPosition);
}

bool tabuleiro::operator == (const tabuleiro T)const
{
	/*for (int i = 0; i < 3; ++i)
	{
		for (int j = 0; j < 3; ++j)
		{
			if (tab[i][j] != T[i][j])
			{
				// Return an error, or print "error there is a duplicate value" etc
			}
		}
	}*/

	return false;
}
.h
#pragma once
#include "ponto.h"
#include "jogador.h"


class tabuleiro
{
private:
	ponto sup_esq;
	char tab[3][3];

	//buscado no side - utilizado para colocar o cursor na posiçao 
	HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
	COORD CursorPosition;

public:
	tabuleiro();
	virtual ~tabuleiro();
	void desenhar(void);
	void gotoxy(int x, int y); //metodo para as coordenadas que desenham


	void SetTab(ponto p, jogador s) {
		p.Get_x();
		p.Get_y();
		s.nomes();
	}

	int GetTab(void) {
		return tab[3][3];
	}

	bool operator ==(const tabuleiro tab)const;
};

tenho a sobrecarga dos operadores == como comentario porque ela da erro

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!