Ссылки - это псевдонимы, они очень похожи на указатели.
std::string
- это массив из char
с явным length
(т. е. внутри него могут быть введены нулевые символы).
Существует C-библиотека для эмуляции std::string
(т. е. предоставления инкапсулированного интерфейса), называемого bstring
для Better String Library . Это избавляет вас от скуки необходимости иметь дело с двумя разными переменными (массив и длина).
Вы не можете использовать классы в C
, но вы можете имитировать их с переадресованной структурой (для наложения инкапсуляции) и методы класса просто становятся регулярными функциями с явным параметром.
В целом это приводит к следующему преобразованию:
void Read_wav::read_wav(const string &filename);
void read_wav(struct Read_wav* this, struct bstring const* filename);
Который (кроме шума struct
) очень похож к тому, что у вас было раньше:)