2011-03-08 5 views
0

float 래퍼를 만들려고합니다. 생성자에서 일부 마법 물건을 처리하려고합니다.참조로 연산자 캐스팅의 값이 잘못되었습니다.

그러나 나는 아주 이상한 오류가 있습니다.

Get()을 사용하면 올바른 값을 얻지 만 캐스트 연산자를 사용하면 임의의 값을 얻습니다.

멤버에게 참조를 전송할 수 없습니까?

+1

분명히 그렇지만 어떻게 사용합니까? 모든 임시 직원이 관련 되었습니까? –

+0

float bar = (float) foo; 귀하의 클래스를 사용하여 잘 작동합니다 (방금 설정 한 m_bar public으로 설정) – SinistraD

+0

Foo bar = 5; Add2dText (SomePos, 흰색, "Bar : % f", bar); –

답변

2

귀하의 의견에 명시된 바와 같이, 당신은 vararg 함수 (나는 그것이 formarg에 의해 vararg 것)에 클래스를 전달하고있어. vararg 전달은 캐스트 유형이 아닌 클래스의 주소를 전달하기 때문에 작동하지 않습니다 (전달할 때 무엇을 캐스트해야하는지 모릅니다).

varargs를 사용해야하는 경우 Get 또는 캐스트를 사용하는 것이 유일한 해결책입니다.

+0

Okey,하지만 일반 float 연산자에도 명시 적 캐스팅을 사용해야합니까? –

+3

아니요, varargs 함수는 클래스 객체에서 작동하지 않으므로이를 피할 필요가 있습니다. –

관련 문제