作为C++程序员,我们必须在将它们实现到类之前处理概念和相关概念的关系.
但是,如何用C等程序语言设计软件呢?如何在没有C++类的帮助下处理概念.
有关:
在C中规划和组织应用程序开发的最佳方法是什么?
在面向对象的土地上挣扎?
John MacInty.. 31
如果您熟悉C++,您可能需要考虑在创建类的任何地方创建数据结构,并创建类似于您通常可能创建的类方法的函数,第一个参数接受指向该结构的指针.
如果您熟悉C++,您可能需要考虑在创建类的任何地方创建数据结构,并创建类似于您通常可能创建的类方法的函数,第一个参数接受指向该结构的指针.
在面向对象语言中,您习惯于首先考虑数据对象,然后考虑要将哪些方法或行为应用于这些对象.它有助于程序编程,将您的数据结构与作用于它们的函数分开考虑.
您可能还要看一下Glib/GObject,它为C语言提供了一种类机制.它被许多项目使用,它非常强大且经过严格测试.
完全可以将OOP设计原则引入'C'.你错过了一些语法糖,但在一天结束时它只是结构,函数和指针.
看一下glib,gtk和gts,看看C语言中OOP编码风格的好例子.
如果您要解决的问题很好地映射到功能分解,则只使用功能分解.
记住操作系统,GUI和其他事件驱动的非过程系统都是在Objective C和C++出现之前很久就用C语言编写的.C不是Cobol.
在学习C++之前,我使用函数指针数组在C语言中编写了一个事件驱动的GUI.封装很容易,我没有尝试过多态,一些关系依赖于编码标准和命名约定,因为命名空间和对象不可用.它包含了一个真正的解析器,递归,因为我还没有在Uni上使用Compiler类.是的,它都适合640K,但我确实使用了叠加.
有些人试图使用Structs中的函数指针来伪装伪对象.我没有看到这一点.在某些方面你必须接受你没有使用C++的事实.