有一个C ++类已经编译成一个库但我可以访问它的源代码;但是由于类没有在任何头文件中定义,我不能简单地包含然后链接libray。我不想更改库源代码,但我希望为我使用类函数,是否可能?
也许extern
会有所帮助,但我没有正确的语法。
答案 0 :(得分:3)
如果不将类声明“移动”到库和应用程序使用的头文件中,这样做是不可能的[或者至少不是一个好主意]。
当然,技术上可以将类声明添加到.cpp文件(或某些头文件)中,但这不是很可靠,因为有人可能会更改库代码中的类,然后你有一个不兼容的类声明,这是“未定义的行为” - 这意味着您的代码通常会执行除您希望的操作以外的其他操作。
当然,该类不在标题中的事实似乎暗示它“仅供内部使用”。