|
|
1
14
OO可以根据需要在C中使用。一般来说,我不同意这样的观点:一个人不能在C中进行OOP,只要你提供一组在给定类型上运行的函数,你就有了OOP。例如,您决定创建一个数据结构。如果您提供了创建、添加、删除和查找数据结构元素的函数,那么它就是面向对象的。一般来说,其他语言通过自动暗示实例变量并自动限定该实例的各种属性来提供语法上的支持。
|
|
|
2
6
是的,它确实被使用过,但毫不奇怪,在为它设计的语言中,它不像OOP那么常见。
有些问题是用OOP很好地建模的。例如,gui的设计通常带有窗口类型之间的继承,使用多态性来重写和专门化行为。
那真的取决于你打算用它做什么。我从不主张什么都不学——了解如何、为什么以及何时使用它是一件很好的事情。很高兴看到一种不是为支持面向对象编程而设计的语言。你读过这本书,所以我假设你对C有一些亲和力,对OOP也有兴趣。试一试,也许在GTK+中集成一些GUI应用程序。另一方面,如果您希望成为下一个设计模式大师web开发人员,那么这可能不是最好的方法,您可以考虑更关注该领域的其他语言。
我建议你使用最好的工具来解决你要解决的问题。决定你要解决的问题。一个GUI桌面应用程序,一个web服务器,一个游戏,一个命令行实用程序。。。一旦你决定了你的问题,你将能够更好地决定哪种技术适合开发一个解决方案。我发现,你不能真正掌握任何与“玩具”,所以你需要做一些真正的东西。 |
|
|
3
4
我有过几个高级C项目的经验,这些项目至少使用了OOP。最著名的是Linux内核。 内核完全是C语言(除了硬件接口汇编中特定于平台的部分)。 file_operations struct(以及其他许多结构),并回调到它们的特定实现。
内核还大量使用了
|
|
|
4
3
真正的“OO”语言为您提供了一些实现OO设计的机制:这些语言为对象和/或类、用数据封装代码、继承等提供了内置的概念。C基本上没有这些,但是考虑到一些技术和自律(正如你的书肯定告诉你的那样),没有什么能阻止你用C进行面向对象编程。 但你愿意吗?
有些人会建议学习C++作为C语言的自然OO进程。我并不全心支持这一点,因为我认为C++对OO能力的一个相当糟糕的选择,是一种比优雅更实用的语言。例如,当从“标准”C编程转向OO编程时,我认为程序员应该考虑放弃直接操纵指针,当然,我会发现必须为数据管理内存是一种负担。现代OO语言将此自动化,这样程序员就有了更多的脑细胞来完成更高级别的任务。C++的吸引力当然是原始速度。因为它可以降到与C差不多的金属级别,所以它通常是OO语言中“最快”的。 所有这些都说明:如果你有一个需要C语言的大项目,并且你想使用和实践OO技术,那么一定要继续!如果不是这样,那么在一个鼓励和支持OO的环境中学习OO可能会让您受益匪浅,也许稍后您会带着OO的知识回到C。这本书中所教的技巧对你来说是有意义的,你将处于一个更好的位置来决定你是真的想用C语言还是用一种“真正的”OO语言。 |
|
|
5
2
或许可以看看这里提到的ooc语言项目: http://attractivechaos.wordpress.com/2009/09/20/oop-in-c-dont-go-too-far/ |
|
|
6
0
|
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |