什么是C++中的资源?

Bui*_*Sin 2 c++ windows resources winapi rule-of-three

关于这个主题:什么是复制和交换习惯用法?

它声明一个类最多应该处理一个资源.资源是什么意思?

编辑:例如,我有一个类来处理每个监视器的信息,并包含一个桌面像素数组.数组和只有数组会被视为资源吗?保持监视器信息和桌面数组的监视器数组是否会是另一个资源,需要另一个类?这是在另一个班级,但这是什么意思?

我在这里和谷歌搜索过,但只找到有关三个规则或资源文件(*.rc和MSDN)的更多信息.没有任何与定义有关的东西.

and*_*abs 5

这个问题一般是指C++中的概念.在这种情况下,它还使用"资源"的一般概念:由外部源提供的对象,通常是外部的,代码块使用的对象.它与现实生活中的"资源"相同.

在复制和交换的情况下,它指的是您的C++类所代表的内容.这个想法很简单:C++类的每个实例都将提供对给定资源的访问.例如,让我们在磁盘上获取一个文件.资源是文件; 操作系统提供对该文件的访问.您的C++类将围绕操作系统的API调用来读取和写入该文件.

您链接的问题是询问如何将这些类与C++的初始化规则混合在一起.您如何遵循这些规则将受到外部资源允许您使用的访问权限以及您个人需要执行的操作的影响.

当然,您的程序也可以拥有自己的资源.例如,将一种类型的枚举映射到另一种类型的枚举的全局数组可以是程序中的资源.因此,对于"我的计划中应该是什么资源"这一问题的答案是"这实际上取决于您编写程序的方式".


Windows程序也有自己的"资源",如位图,图标,对话框控件布局,菜单布局,本地化字符串和其他东西.为了将这些内容嵌入到输出二进制文件中,Windows提供了自己的系统,并且还调用了所有这些"资源"..rc文件只是列出所有这些Windows资源的方式; 您将其构建到Windows程序中.

GLib(GTK +构建于其上),Qt和各种Apple API都有自己的类似系统,每个系统的名称中都有"资源".

(您可以编写C++类来提供对所有这些特定资源的访问;在这种情况下,资源就是资源.)

但是,阅读时不要混淆特定技术(Windows资源)的通用术语("资源"),反之亦然,尤其是对于作为资源的抽象概念.在继续编程之旅时请记住这一点.