是否可以使用另一个 cpp 文件中定义的类而不是任何标头

Is it possible to use the class defined in another cpp file rather than any header?

本文关键字:任何标 定义 可以使 另一个 cpp 文件 是否      更新时间:2023-10-16

有一个C++类已被编译成一个库,但我可以访问它的源代码;但是由于该类未在任何头文件中定义,因此我不能简单地包含然后链接库。我不想更改库源代码,但我希望为我使用类函数,可以吗?

也许extern会有所帮助,但我只是没有正确的语法。

如果不将

类声明"移动"到库和应用程序使用的头文件,就不可能[或至少不是一个好主意]来执行此操作。

当然,从技术上讲,将类声明添加到您的.cpp文件(或某些头文件)中是可能的,但这不是很可靠,因为有人可能会更改库代码中的类,然后您有一个不兼容的类声明,这是"未定义的行为" - 这意味着您的代码通常会执行您希望它执行的操作之外的操作。

当然,该类不在标头中的事实似乎暗示它"仅供内部使用"。