c - C的FILE有面向对象的接口(interface)吗?

标签 c oop

通过标准 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/

相关文章:

c - 如何编写根据命令行参数将字母转换为大写或小写的程序?

CLion 在 main.c 中找不到用于外部 .c 文件的 header

c - Cormen and Co 如何从 "The Introduction to Algorithms"实现归并排序

python - 为什么我的实例会发生变化?

php - 让每个类自动加载是否明智

将数组中的字母更改为 3 个不同的字母

c - Linux/bash 中程序返回值的有效范围是多少?

java - 我们可以借助另一个类的构造函数来初始化一个对象吗?

php - OOP设计题

java - 如何创建对象的 OOP 基础知识