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

时间:2013-09-06 13:41:38

标签: c++ shared-libraries static-libraries extern

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

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

1 个答案:

答案 0 :(得分:3)

如果不将类声明“移动”到库和应用程序使用的头文件中,这样做是不可能的[或者至少不是一个好主意]。

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

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

相关问题