我有一個重載構造函數的類,沒有默認的構造函數。重載的構造函數實質上做了相同的事情,但在提供的參數上有所不同。比方說,我有一個類如下 -在重載的構造函數中重複代碼
struct info {
int one; // must be filled
int two; // can be empty
int three; // can be empty
}
class A {
int a;
double b;
float c;
info I;
public:
A(a,b,c,one) :
a(a),
b(b),
c(c)
{
// some processing
I.one = one;
// some other processing
....
}
A(a,b,c,i) :
a(a),
b(b),
c(c),
I(i)
{
// some processing
// some other processing
....
}
}
的處理和一些處理部分被重複和略微依賴於特定的路徑,這是經常修改,迫使我們做兩地相同的,相同的變化。
這可以通過某種方式簡化爲相同的構造函數嗎?我希望能夠與構造函數委託做些事情,但無法想出一個聰明的方法來做到這一點:/
請說明downvotes ..我會很高興地改善我的問題:) –
我不知道,但它可能是由於你未能在構造函數中指定參數的類型(即, 'A(int a,int b,...'),或者只是你有很多代碼的事實....?這個問題對我來說似乎完全合理。 –