"this"키워드와 관련하여 질문이 있습니다. 나는 BiPoly 다항식을 나타내는 "BiPoly"라는 클래스를 가지고 있습니다. BiPoly<NT>::DifferentiateX()
이라는 멤버 함수가 있는데, 부분 차등화 X를 얻고 자체 수정됩니다. BiPoly라는 다른 멤버 함수에서C++에서 "this"를 사용하여 멤버 함수에서 로컬 객체를 만들 수 있습니까?
template <class NT>
BiPoly<NT> & BiPoly<NT>::differentiateX() {
if (ydeg >= 0)
for (int i=0; i<=ydeg; i++)
coeffX[i].differentiate();
return *this;
}//partial differentiation wrt X
:: EVAL1는(), 내가 BiPoly<NT>::eval1()
를 호출하는 객체의 DifferentiateX()
의 결과를 얻을 필요가있다. DifferentiateX()는 자체 수정되었으므로 eval1() 내에서 결과를 얻기 위해 임시 변수를 만들어야합니다. 내 질문은 : "this"
멤버 함수 내에서 임시 개체를 만들 수 있습니까? 그렇다면 어떻게해야합니까?
'differentiateX' 함수에 대한 그의 정의는 완전히 훌륭합니다. 그것은 임시 객체에 대한 참조를 반환하지 않지만,'* this' - 메소드가 호출 된 바로 그 객체입니다. 물론'return BiPoly() .differentiateX(); '와 같은 작업을 수행하는 데 사용할 수 있지만 메소드 자체를 호출하는 것이 아니라 메소드를 호출하는 코드에서 문제가됩니다. –
Xion
Xion에 : 예, 그의 질문은 "이 함수를 사용하여"멤버 함수 내에서 임시 객체를 만들 수 있습니까? 그럼 대답은 여전히 유효합니다 :'BiPoly nv = * this;'는이 객체를 사용하여 초기화 할 때 임시 변수를 선언하는 방법입니다. –