我正在創建一個類 - 我們稱它爲Container
- 基本上只包含一個std::vector
和一些決定向量值如何挑選的特殊邏輯。我想添加一個方法用一次調用將多個值添加到我的類中。這是我的方法,增加了一個項目:採用可變數量的參數,並將它們放在std :: vector中
void LoopGenerator::add(RandomStripe &stripe)
{
stripes.push_back(new SingleStripe(stripe));
}
我想類似的方法將被稱爲像這樣:
LoopGenerator gen = LoopGenerator();
gen.add(RandomStripe(), RandomStripe(), RandomStripe() ... and as much as you want ...);
,並會所有參數添加到內std::vector
。
這可能只是與標準庫,或最好沒有他們?
傳統va_args需要一些方法來知道許多參數如何傳遞。或者,您可以使用可變參數模板(如果可用)。 – 2014-12-05 21:03:30
@TomášZato什麼是RandomStripe和SingleStripe?他們是不同的類型? – 2014-12-05 21:07:38
@VladfromMoscow是的,他們是不同的。實際上,'SingleStripe'只是存在的,所以'RandomStripe'可以和其他的條帶生成類一起使用。'SingleStripe'派生自與LoopGenerator相同的類。 – 2014-12-05 21:26:29