如何在运行时定义函数内部的返回类型?我有一个成员char * m_data;我想在不同情况下将m_data转换为不同的类型。有没有办法在C++中定义函数体内的返回类型?
?type? getData() const
{
switch(this->p_header->WAVE_F.bitsPerSample)
{
case 8:
{
// return type const char *
break;
}
case 16:
{
// return type const short *
break;
}
case 32:
{
// return type const int *
break;
}
}
}
将来电者总是知道哪些数据类型将被退回?如果不是,你将如何调用这个函数? – Joni
您可以返回'void *'并在您访问结果时进行强制转换。 – harpun
实际上更好的方法是创建一个'iterator',它将得到由'bitsPerSample'等动态分配的“stepsize” – Valerij