Ir para conteúdo

POWERED BY:

Arquivado

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

IvanR

Como posso arrumar esta ambiguidade nas sobrecargas de operadores?

Recommended Posts

T é true

F é false

_ é null

 

protected: char myValue;   

XBool XBool :: operator = (const char value)
   {
	  try
	  {
		 if(value == '_' || value == 'T' || value == 'F')
			myValue = value;
		 else throw valueException;
	  } catch(exception& e) { cout << e.what()<< "(" << value << ")\n"; }
   }

   XBool XBool :: operator = (void*)
   {
	  try
	  {
		 myValue = '_';
	  } 
   }

XBool T;
   T = 'T';

   T = NULL;

Quero aplicar o NULL para um dado valor mas está dando que o código está ambiguo, até entendi pq está ambiguo mas naum consigo tirar a mesma

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na primeira sobrecarga voce pode testar se o valor passado é Nulo e atribuir o valor desejado a ela.

myValue = '_';

 

e como a Isis disse retire a seunda parte do código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw gente! Resolvi fazendo isso:

 

XBool XBool :: operator = (const char value)
   {
	  if (value == NULL)
	  {
		myValue = ' ';
	  }else
	  {
		try
		{
		   if(value == ' ' || value == 'T' || value == 'F')
			  myValue = value;
		   else throw valueException;
		} catch(exception& e) { cout << e.what()<< "(" << value << ")\n"; }
	  }
   }

Agora uma coisa despertou minha curiosidade, NULL é tb um caracter ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

/usr/include/libio.h:# define NULL (__null)

/usr/include/libio.h:# define NULL ((void*)0)

/usr/include/libio.h:# define NULL (0)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.