通过标准 C 函数 fopen
等使用的 FILE
类型是否具有面向对象的接口(interface)?
我正在寻找有推理的意见,而不是绝对的答案,因为 OO 的定义因你问的人而异。它满足或不满足哪些重要的 OO 概念?
为了回应 JustJeff 在下面的评论,我不是在问 C 是否是一种 OO 语言,也不是在问 C 是否(容易或不允许)允许 OO 编程。 (这不是一个单独的问题吗?)
最佳答案
C 是一种面向对象的语言吗?
在创建 C 和 FILE 时,OOP(面向对象编程)仅仅是一个实验室概念吗?
回答这些问题将回答您的问题。
编辑:
进一步的想法: 面向对象具体意味着几种行为,包括:
Inheritence: Can you derive new classes from FILE?
Polymorphism: Can you treat derived classes as FILEs?
Encapsulation: Can you put a FILE inside another object?
Methods & Properties: Does a FILE have methods and properties specific to it? (eg. myFile.Name, myFile.Size, myFile.Delete())
虽然有众所周知的 C“技巧”来完成类似于这些行为中的每一个的东西,但这不是内置到 FILE 中的,也不是最初的意图。
我的结论是 FILE 不是面向对象的。
关于c - C的FILE有面向对象的接口(interface)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1041521/