gpt4 book ai didi

c++ - C++ 中的资源是什么?

转载 作者:可可西里 更新时间:2023-11-01 09:47:31 24 4
gpt4 key购买 nike

关于此主题:What is the copy-and-swap idiom?

它指出一个类最多只能处理一种资源。什么是资源?

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

我在此处和 Google 上进行了搜索,但只找到了与三规则或资源文件(*.rc 和 MSDN)相关的更多信息。与定义无关。

最佳答案

这个问题一般指的是 C++ 中的概念。在这种情况下,它还使用了“资源”的一般概念:一个对象,通常是外部的,由外部源提供,供一段代码使用。相当于现实生活中的“资源”。

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

您链接的问题是询问如何将这些类与 C++ 的初始化规则混合使用。您如何遵守这些规则将取决于允许您使用的外部来源的访问权限以及您个人需要做什么。

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


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

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

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

但是在阅读时不要将通用术语(“资源”)与特定技术(Windows 资源)混淆,反之亦然,这一点非常重要,尤其是对于资源这样的抽象概念。在继续编程之旅时请记住这一点。

关于c++ - C++ 中的资源是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35353357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com