class BaseClass {
public:
BaseClass(const byte *buff, long size) {
// Some Computation
}
};
class DerivedClass: public BaseClass {
public:
std::vector<byte> filebuff;
long buff_size;
DerivedClass(): BaseClass(/*How should I send stuff here?*/)
{
}
/*return type??*/ cal_func(){
// Some computation involving file descriptors.
// Store result in filebuff. Store size of filebuff in buff_size.
return /*what??*/;
}
}
我只能認爲以下溶液:C++:如何使用多個參數調用基類構造函數?
DerivedClass(): BaseClass(&filebuff[0], cal_func)
在上述情況下,我將函數func()返回filebuff的長度。我依賴的事實是filebuff只是一個地址,因此編譯器首先將計算的func值放在堆棧上還是放在第一個arg filebuff上,這並不重要。
請告訴我這是否是正確的方法。如果第一個參數不是一個地址和一些其他需要在函數func中執行計算的計算值,那麼最好的方法是什麼?
不,這是不正確的 - 在'filebuff'構造之前,你正在執行'&filebuff [0]'。 – ildjarn
您能否介紹一下傳遞地址的最佳方法? –
重新設計你的代碼 - 考慮使用組合而不是繼承。代碼中沒有任何內容表明對派生類的任何需求。 – ildjarn