是否可以使用另一个 cpp 文件中定义的类而不是任何标头
Is it possible to use the class defined in another cpp file rather than any header?
有一个C++类已被编译成一个库,但我可以访问它的源代码;但是由于该类未在任何头文件中定义,因此我不能简单地包含然后链接库。我不想更改库源代码,但我希望为我使用类函数,可以吗?
也许extern
会有所帮助,但我只是没有正确的语法。
如果不将
类声明"移动"到库和应用程序使用的头文件,就不可能[或至少不是一个好主意]来执行此操作。
当然,从技术上讲,将类声明添加到您的.cpp文件(或某些头文件)中是可能的,但这不是很可靠,因为有人可能会更改库代码中的类,然后您有一个不兼容的类声明,这是"未定义的行为" - 这意味着您的代码通常会执行您希望它执行的操作之外的操作。
当然,该类不在标头中的事实似乎暗示它"仅供内部使用"。
相关文章:
- 如何在标头中声明(或定义)函数的问题
- 如何避免在仅标头库中C++类/变量重定义
- 共享指针和具有自定义删除程序的唯一指针之间的语法差异背后的任何原因
- 我可以在运行时重新定义在 OpenCascade/OCCT 标头中定义的 c++ 静态常量吗?
- 使用标头保护的多个定义链接错误
- 为自定义打印调试实现传递任何类型的变量
- 如何在不给它任何类型(如整数)的情况下定义某物?
- 有什么方法可以在标头中定义和声明 extern 对象吗?
- 标准库中的任何正则表达式语法是否支持 (?(定义)用于子模式参考?
- C++ 未知类型名称,即使类型是通过标头定义的
- 定义带和不带INCLUDED_HEADERNAME_H的标头有什么区别
- visual MSVC cl.exe尝试使用C++标头范例(定义与声明)
- 导致编译错误的自定义预编译标头
- 为什么函数的任何索引处的下标运算符在C++中总是返回1
- 是否可以用类似C/C++(或任何语言)的语言,从作为用户输入的字符串或文件中创建用户定义的数据类型
- 在没有类定义的标头中定义成员变量
- 只有一个定义/声明时标头声明变量的多堆定义错误
- C++包括标头在内的多个定义
- 是否可以使用另一个 cpp 文件中定义的类而不是任何标头
- 是否有任何未定义的行为问题,当移动数据到一个函数,然后回到它来自哪里