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??*/;
}
}
我只能想到以下解决方案:
DerivedClass(): BaseClass(&filebuff[0], cal_func)
在上述情况下,我将使用函数 func() 返回文件缓冲区的长度。我依赖于 filebuff 只是一个地址这一事实,因此编译器将 func 的计算值首先放在堆栈上还是第一个 arg,filebuff 上并不重要。
请告诉我这是否是这样做的正确方法。如果第一个参数不是地址和其他需要在函数 func 中执行计算的计算值,那么最好的方法是什么?