演算子のオーバーロードに関連する質問があります。次のコードが示すように、クラスとその演算子のオーバーロード関数を簡単に定義できます。
typedef std::vector<std::vector<int> > ARRAY;
class ABC
{
public:
ABC():a(0)
{
};
int a;
ABC& operator = (int value)
{
a = value;
return *this;
}
ABC(int value)
{
a = value;
}
};
void obtain_priority_array(const std::vector<double> &weighting, const ABC &priority_array=NULL)
{
}
int main()
{
vector<double> weighting;
weighting.push_back(0.8);
weighting.push_back(0.9);
weighting.push_back(0.6);
weighting.push_back(0.3);
weighting.push_back(0.5);
ABC test;
obtain_priority_array(weighting, test);
return 0;
}
上記の例では、関数 がデフォルトの引数を持つことができるようにclass ABC
再定義されています。私の質問は、関数の最後のパラメーターがSTLからのものであるかどうかです。たとえば、を再定義するにはどうすればよいですか。ありがとう!operator =
void obtain_priority_array(const std::vector<double> &weighting, const ABC &priority_array=NULL)
const ABC &priority_array=NULL
const std::vector<int> &priority_array=NULL
operator =
編集:
void get_priority_array(const std :: vector&weighting、const std::vector<int> &sample=NULL
)が失敗しました!