Ir para conteúdo

POWERED BY:

Arquivado

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

diegobill

Sobrecarga de operador c++/cli para c#

Recommended Posts

Estou tentando utilizar um operador de uma ref class de um projeto visual c++ em um método de uma classe de um projeto visual c#, mas estou obtendo o seguinte erro "Operator '-' cannot be applied to operands of type 'VecPositionSpace.VecPosition' and 'VecPositionSpace.VecPosition'"

 

Código da classe em c++ que contém operador:

#pragma once

namespace VecPositionSpace
{
public ref class VecPosition
{
private:
	float  x;
	float  y;
public:
	VecPosition(void);
	VecPosition(float X, float Y);
	VecPosition^ operator -(VecPosition ^vec);
	VecPosition^ operator -(VecPosition vec);
	float getX();
	float getY();
	void setX(float X);
	void setY(float Y);
	float getOrientation(); //em radianos
};
}

VecPosition^ VecPosition::operator -(VecPosition ^vec)
{
	return gcnew VecPosition(x-vec->getX(), y-vec->getY());
}

VecPosition^ VecPosition::operator -(VecPosition vec)
{
	return gcnew VecPosition(x-vec.getX(), y-vec.getY());
}

Código em c# que utilizará a sobrecarga:

            VecPosition vaca2 = new VecPosition();
            VecPosition teste;
            float t = (teste - vaca2).getX();

 

O ERRO OCORRE NA ULTIMA LINHA, QUANDO EU TENTO UTILIZAR O OPERADOR -

Alguém saberia dizer onde está o erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não prefere que eu mude seu tópico para a plataforma .NET ?

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Diego,

 

assim não funciona ?

VecPosition vaca2 = new VecPosition();
VecPosition teste = new VecPosition();
float t = (teste - vaca2).getX();

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.