여기에서 몇 가지 해답을 보았지만 여기서는 적용되지 않을 수 있습니다. 나는 대부분 하나의 인수 (1)에 사용되는 (회원) 기능이 있습니다, 어쩌면 유형 string
의 네 번째 인수에 따라 선택적으로C++ 옵션 std :: vector 인수 for function
const std::complex<double> Class::func(const std::complex<double> &x, \
std::vector<double> &y = 0, \
std::vector<double> &z = 0) const;
내가 y
및 z
에 대한 싶습니다을 무엇인가 이런 식으로 : func( , , , const std::string &choice)
,하지만 하나의 인수 만 함수에 전달하고 다른 두 개는 사용하지 못하게합니다. 예를 들어, y
을 전달하면, 그 선언은 이전에 func()
을 호출하여 완료되어야합니다. z
과 동일하지만,이 옵션을 사용하고 싶습니다. 함수가 수학 측면에서 약간 무겁고 필요가 없습니다. 필요없는 경우 두 개의 추가 벡터를 계산하는 부담을 가중시킬 수 있습니다. 이것이 가능한가?
을 'std :: optional'이 있습니다. 그렇지 않으면'boost :: optional'이 있습니다. – NathanOliver
참조 대신 포인터를 전달하고 기본값을 nullptr로 설정하십시오. 그런 다음 코드에 y! = nullptr 및 z! = nullptr이 있는지 확인하면 완료됩니다. 하나의 작은 경고, 당신은 그들을 위해 기본값을 가지고 있지 않으면 매개 변수를 가질 수 없을 것입니다. 그래서 문자열은 기본값을 가져야합니다. 그러나 더 작은 유형을 사용하면 덜 무겁게 만들 수 있습니다. –
함수 내부에서 y 또는 z를 수정해야합니까? 다른 말로하면 y와 z는'const std :: vector & z' –
log0