Из вашего кода выше я не совсем уверен, что вы пытаетесь сделать. Функция 'getSound' принимает объект Mix_Music в качестве параметра и возвращает тот же объект. Теперь из некоторого вывода я предполагаю, что вы пытаетесь запросить объект BGMusic через строку. Есть несколько способов сделать это, используя идентификаторы для каждого из объектов Mix_Music, запрос по идентификатору .:
... // Somewhere above:
enum MixMusicID {
BGMUSIC,
FALL,
RESET,
TELEPORT,
WIN,
SINGLECUBEWIN
};
... // In the class:
Mix_Music * getMusic ( MixMusicID id )
{
switch (id)
{
case BGMUSIC:
return BGMusic;
...
default:
return NULL;
}
}
... // In main:
Mix_PlayMusic( Sound.getSound( BGMUSIC ), -1 );
Вы можете сделать это аналогично со строковыми идентификаторами для каждого объекта. На самом деле все сводится к тому, что между именем переменной и строковым идентификатором нет встроенной связи. Таким образом, вы должны реализовать это отношение с помощью перечисления (выше) или строковых идентификаторов.
Надеюсь, это помогло, опять же, я не совсем уверен, что именно был вопрос.