프로젝트의 C++에서 리플렉션 양식을 구현하려고합니다. 아이디어는 태그로 클래스를 일종의 템플릿으로지도에 등록한 다음 공유 기본 클래스의 cloneNew 메소드를 호출하여 실제로 원하는 객체를 만드는 것입니다. 그러나이 기능을 구현하기 위해 va_list를 사용하려고하면 이상한 결과가납니다. 문제 코드는 다음과 같습니다.홀수 값을 반환하는 C++ va_list
GameObject* SphereObstacle::cloneNew(const Vector& position, double charge, const Vector& dipole, ...)
{
va_list v1;
va_start(v1, dipole);
double radius = va_arg(v1, double);
va_end(v1);
return new SphereObstacle(position, charge, dipole, radius);
}
va_list에서 읽으려고 할 때마다 거대한 값을 반환합니다. 거의 포인터처럼 보입니다. 내 생각에이 문제는 기본 클래스에 가상 메서드가 구현되어 있기 때문에 발생하지만 실제로 온라인에서 문제가 있음을 알지 못했습니다. 내가 잘못하고있는 것은 무엇인가?
확인 아, 그래서 충전 인수를 넣어 마지막으로 문제를 해결해야합니까? 줄임표 내에서 추가 참조 인수를 전달할 수 있습니까, 아니면 그 문제입니까? – Pat