就像 JavaScript 能够操纵 DOM 一样,因为浏览器将 DOM 以对象的形式暴露给 JavaScript。这是否与 C++ 能够在屏幕上进行绘图之类的操作相同?操作系统是否以 C++ 类的形式创建 C++ 接口,或者操作系统是否有一些我的特定 C++ 版本知道如何实现的通用接口?
3 回答
操作系统是否以 C++ 类的形式创建 C++ 接口
不,这些类是由各种 C++ 库定义的,包括标准库。
或者操作系统是否有一些我特定版本的 C++ 知道如何实现的通用接口?
我想你可以这样说。操作系统将具有较低级别的 API(可能基于函数调用),然后将其包装为类库。
如果从操作系统的角度来看,它为图形、IPC 和 IO 等事物提供 API,具有通用接口。通常,这采用可链接子程序的形式,使用该操作系统的调用约定标准。创建语言的人(编译器或解释器)将提供他们自己的代码来连接这些子例程,以便您可以在用户代码中使用它们。对于 C 编译器,这通常采用直接调用那些 OS 例程的形式。对于高级语言,通常会有一层代码为您处理一些细节,无论是将 cookie 转换为类,还是像您在某些脚本语言中看到的完整的可移植高级工具。
在 C++ 的情况下,通常您会查看 STL,看看是否有可以使用的东西。如果没有,您的典型回退是像 C 用户那样直接调用操作系统例程。过去的情况是,除了基本文本 I/O 之外,大多数东西在 STL 中都不可用,因此您必须退回到直接进行操作系统调用。但是,该语言的最新版本已经开始为 STL 的典型 OS 功能添加越来越多的接口。此外,如果您不介意下载、安装并弄清楚它是如何工作的, Boost中通常会有您想要的东西。