是能用就行,但更重要的是要知道为什么这个用而不用那个、怎么用、在什么时候用、用了有什么结果,因此,原理很重要。学C++,其实是要学面向对象的思想,过份细节的东西可以略过,但起码要能用基本的语法写出一般的东西——并非一定要从C++开始的。
关于保留的问题,将来你写点一定规模的系统,就知道保留有什么用,那是用于扩展的,属于占位性质。早期的Windows API是用C写的,C的语法主要靠参数传递,无法像C++那样可以用类封装字段(默认的参数可以不用写而带默认值,但C传参却必须把参数的数目写全,哪怕是以NULL当作默认值也要写上去),所以API函数很多这类东西,但Windows7/8开始已经转型到.NET框架了,系统API不需再用C语法,FCL封装了很智能灵活的类库,没有那么麻烦了。也就是说,这其实是C语言把很多细节暴露出来的特性而已。
对绝大多数常用的应用软件来说,确实不需要知道太多的细节,比如数据库如何查找记录与我无关,我只要知道如何发出查找指令、得到的记录将是怎样返回给我的、如何使用、更新即可,指令的用法在参考手册上写得清楚,研究那个就可以了,不用去研究人家用什么算法和数据结构,除非我认为现成的指令不足以应用,需要自己写,那才要深入细节。这与你的定位有关,是普通的应用软件开发者,还是计算机解剖手术师。