如何在運行時定義函數內部的返回類型?我有一個成員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