4Qt编程,QMainWidow使用工具栏后,在窗口单击右键,会弹出一个只有一个勾勾的菜单,点那个勾,工具栏就隐

2025-03-22 03:21:07
推荐回答(1个)
回答1:

C++语言支持多种编程范式:面向过程、面向对象和范型程序设计。它所兼容C的部分,正是支持面向过程的主要部分。有C语言的基础,虽然有助于更快地掌握C++的面向过程部分,但由于C++语言本身也直接支持面向过程,因此我们完全可以从C++中直接学习面向过程程序设计,而无需先学C。至少理论上如此。

但话又要说回来。注意,这么提问的大多是初学者。一般讲解C++语言的教程,限于篇幅,面向过程部分无法与一本优秀的C语言教程相媲美。于是,真正的问题来了:直接从C++语言开始学习的初学者,他是否愿意像C语言初学者那样花大量的时间和精力,专门钻研面向过程程序设计呢?如果他不愿,那么他对面向过程部分的掌握,就难以跟一个扎扎实实学习过C语言的人相比。即使只讨论“C++中的C”,结论也一样。但是,这里我只是想强调这样一个事实,而并非要下个“必需先学C”的结论。

我个人在初学C++语言时,觉得教程中学到的好多东西,包括面向对象程序设计,在实践中无法运用自如。后来因工作需要,又去学习Java语言,之后对面向对象有了一点开窍的感觉。再使用C++写程序时,发现OO起来也更顺畅了,我的好几位朋友也有过类似的感觉。究其原因,我想跟上面的分析的C语言情况类似。C++的所支持的特性和编程范式太多,初学者很难快速消化全部。而Java在1.4之前,可以认为是纯面向对象的。这样,使用Java写程序时,我们被迫实践面向对象编程,这就好比使用C写程序,我们被迫实践面向过程一样。而直接使用C++写程序,没有什么“被迫”,我们也就缺少了相应的“专项强化训练”。并非所有的人都需要这种“专项强化训练”,但对于初学者,面对着需要掌握的复杂知识体系,它确能起到“分而治之”的作用,从而促进对知识的消化和吸收。