类似于JavaScript如何操作DOM,因为浏览器以Object的形式将DOM暴露给JavaScript。这与C ++能够在屏幕上绘制的内容相同吗?操作系统是否以C ++类的形式创建C ++接口,或者操作系统是否具有我的特定C ++版本知道如何实现的通用接口?
答案 0 :(得分:4)
C ++与操作系统的交互很少。例如,它不知道屏幕或绘图 - 虽然其他库,如OpenGL,可能会。
标准C ++ 03本质上限制了它与主机系统的交互,以进行内存管理(分配和释放),文件流操作,日期和时间访问以及本地化信息(我可能会忘记一些事情)。 C ++ 11增加了一些案例,例如处理线程代码和访问system’s random device(如果可用)。
所有这些都是完全未指定的,每个C ++实现都有自己的代码,具体取决于它运行的系统。许多C ++实现正在使用的一个重要接口称为POSIX,它公开了一个C API。
答案 1 :(得分:2)
操作系统是否以C ++的形式创建C ++接口 类
不,这些类是由各种C ++库定义的,包括标准库。
或操作系统是否有一些我的通用接口 特定版本的C ++知道如何实现?
我想你可以这样说。操作系统将具有较低级别的API(可能基于函数调用),然后将其封装为类库。
答案 2 :(得分:2)
如果您从操作系统的内容中查看内容,它会为图形,IPC和IO之类的内容提供API,并具有通用接口。典型地,这采用可链接子例程的形式,使用该OS的调用约定标准。创建语言的人(编译器或解释器)将提供与这些子例程接口的自己的代码,以便您可以在用户代码中使用它们。对于C编译器,通常这采用直接调用这些OS例程的形式。对于更高级别的语言,通常会有一层代码可以为您处理一些细节,无论是将cookie转换为类,还是像某些脚本语言中看到的完整的可移植高级设施。
在C ++的情况下,通常你会查看STL并查看是否有可以使用的东西。如果没有,那么典型的后备是直接调用OS例程,就像C用户那样。以前的情况是,基本文本I / O之外的大多数事情在STL中都不可用,因此您必须回退直接进行OS调用。但是,最近对该语言的修订已经开始向STL添加越来越多的典型OS功能接口。此外,如果您不介意下载,安装它,并弄清楚它是如何工作的,那么Boost中的内容通常会让您想要它们。