一つの単位で機能を管理・提供できる点がoopじゃないのん。
cのstructじゃ処理(関数)を外側で指定(関数ポインタへの代入)しなくちゃならないんだし。

waveのinとoutの低レベルな関数はcでべた書きで用意して、
waveファイル, waveinストリーム, waveoutストリームってな感じで、
簡単に扱えるようにしたclassはc++で用意してってやると、
利便性も拡張性も供給できて、高レベルも低レベルも両方同じコードで提供できる。

詰まる所、需要と供給の話程度かと。