gpt4 book ai didi

c++ - 库类是如何实例化的

转载 作者:行者123 更新时间:2023-11-30 02:06:14 25 4
gpt4 key购买 nike

我要问的是用c++是怎么做到的,但是这个思路可以适用于多种语言。如果您也知道如何在 objective-c 中做到这一点,请提供两者之间的任何相似之处

假设我想创建一个ofstream 的实例

ofstream myfile;

我假设我电脑上只有 *.o 文件(在库存档中)和 iostream 类的 *.h 文件。如果这部分不正确,请告诉我。当我安装的只是运行时和开发包,而不是源文件时,我会假设这一点。

它如何将头文件连接到目标文件,是否有命名方案。它看起来在哪里,顺序是什么。?

为什么这让我感到困惑,通常当我想创建一个类时,我将类的实现与程序链接起来,那么它现在在哪里以及如何链接文件?

还有一个,静态加载还是动态加载重要吗?

提前谢谢你,如果这是一个愚蠢的问题,我很抱歉。

最佳答案

计算机科学 101:

  1. 广义上讲(非常广泛!),有两种“程序”:

    a) 解释型:你每次执行的时候都一行一行的读程序源码<= *nix shell 脚本和 DOS .bat 文件是“interpeted”

    b) 已编译:您阅读源代码一次(将其转换为“二进制机器代码”)。您链接机器代码“目标文件”以构建“可执行程序”。

  2. 你说的是“编译程序”

  3. 一旦程序被“编译”,“ofstream”部分就无关紧要了

    “ofstream”的二进制实现可以直接编译成可执行文件,也可以在运行时从共享库 (.dll) 动态加载。

  4. “编译器”使用“.h” header 来处理源文件。

    “链接器”使用“.lib”库来匹配链接类型的符号和链接静态代码。

    “操作系统”识别动态链接并在运行时加载所需的共享库 (.dll)。

三个不同的东西,彼此独立:编译器/源代码、链接器/机器目标代码、操作系统/可执行程序

'希望有帮助..有点...

关于c++ - 库类是如何实例化的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8947554/

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