【发布时间】:2015-03-02 08:46:37
【问题描述】:
我是 C++ 新手,很难理解创建和编译类目标文件的步骤。
假设我创建了 3 个文件:1. 类头文件 2. 类 cpp 文件(存在成员函数定义) 3. 主 cpp 文件
/* 当我运行包含类头文件(比如“#include class.h”)的主 cpp 文件时,什么时候编译类 cpp 文件、创建和链接目标文件?
我遇到困难的原因是从编译器的角度来看,当它看到主cpp文件时,只有头定义,没有成员函数定义。但是,即使在类头文件中,也没有包含类 cpp 文件。当类头文件和主 cpp 文件中都没有引用它时,编译器如何知道运行类 cpp 文件? */
让我澄清一下我的问题。 // 也许我说了一些我什至不明白的事情,哈哈。
所以,基本上我试图在一个说“main.cpp”文件中运行一个主函数。此“main.cpp”文件包含“class.h”标头(包括“class.h”)。当“class.h”中未声明成员函数时,编译器将如何执行头文件中定义的函数?我所有的成员函数声明都在“class.cpp”中,它不包含在“class.h”或“main.cpp”中。
【问题讨论】:
-
C++ 中没有像“类对象文件”AFAIK 这样的东西,至少没有具体说明。此外,您不会“运行 cpp 文件”。为了理解你的问题,你如何用两个“cpp”文件编译一个项目?因为都是一样的,有没有类也没关系,你可以有一个
cpp只定义一个函数。 -
@luk32 示例:
Rectangle.h包含在Rectangle.cpp中,Rectangle.cpp被编译并Rectangle.obj被创建。我认为这就是 OP 所指的“类对象文件”。 -
@GrinNare 更新(编辑)您添加该评论的问题,并删除该评论。