gpt4 book ai didi

file - 我是否在某处读到过 C++/CLI 让我们走向一个 "header-file"更少的社会,比如 Java

转载 作者:行者123 更新时间:2023-12-05 01:25:44 25 4
gpt4 key购买 nike

如果是这样,我是否应该在创建类时尽量减少头文件的使用?

最佳答案

(这可能晚了 3 年,但它仍然显示在谷歌搜索的顶部附近,并且该信息今天仍然有效,就像 3 年前一样)。

首先,是的,你是对的,在 C++/CLI 中你不使用 .h 文件,除了 native C++ 类、结构等。

可能想到的第一个问题是,如果我没有#include "someheader.h" 文件,我该如何引用我的类?对此有两个答案:1)对于项目之外的类; 2) 对于你项目中的类。

1) 在您的 .VCPROJ(项目属性页中的通用属性/框架和引用)中添加对 .DLL(或解决方案中的另一个项目)的引用。

2) 添加一个#using otherclass.obj,就是对目标文件的#using!

在您的项目中,假设每个类都有自己的源文件,当您想在另一个类中引用它时,我们使用#using "a_compiled_file",它可以是 .dll 或.obj 文件。

在您的项目属性页中,在 C/C++/General 下您将看到:Resolve #using References,只需添加 MACRO 字符串 $(IntDir)。这解析为已编译源代码的中间目录。

编译器读取 .obj 文件中的元数据(就像 .dll 文件中的元数据一样)并将其用于它需要的所有信息,而不是 .h 头文件!

我们这样做是因为 C++/CLI 编译器太笨了,无法像 C# 编译器那样记住同一项目中的类。

注意:您在使用$(IntDir) 时可能会遇到共享违规,在这种情况下,预编译文件并将它们放在自己的目录中。编译器只需要元数据,因此除非您要更改类结构(想想 .h 的东西),否则不需要每次都编译它。

关于file - 我是否在某处读到过 C++/CLI 让我们走向一个 "header-file"更少的社会,比如 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/983065/

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