c++ - 如何将新函数添加到其实现在 C++ 中不可访问的类

标签 c++

如果此类的实现对用户隐藏,是否可以在类中添加新功能。 但仍然需要向此类添加新功能。

最佳答案

“如果隐藏了此类的实现,是否可以在类中添加新函数”- 通常,不可以。

要添加新功能,您有一些选择:

1) 获取原始源代码并添加您的功能(最佳选择)。

2) 从类派生(如果它不是 final)并添加您的函数(只有当您可以在任何需要的地方使用派生类型时才足够好)。

3) 编写一个自由函数,该函数接受类实例的指针或引用,然后使用它来访问类的 (public) 成员。不太喜欢添加真正的成员,但在某些情况下已经足够了。

您不能像在某些其他语言中那样动态地向 C++ 中的类添加函数。

关于c++ - 如何将新函数添加到其实现在 C++ 中不可访问的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54637043/

相关文章:

c++ - 在 C++ 中减少 `constexpr` 对象生命周期是否合法?

C++ 分隔整数

c++ - 什么是 "metadata operation failed"VS2008 链接器错误?

c++ - 将 float 或 double 转换为 int 时,跨平台的行为是否一致?

c++ - 获取指向模板化 lambda 运算符 () 的指针,无需捕获

c++ - Windows 64位共享dll Tesseract?

c++ - (n&(n-1))==0 和 n&(n-1)==0 在 C++ 中做什么?

c++ - QTableWidget 到多个文件

c++ - 为什么不能在没有可变参数的情况下在 lambda 内部转发参数?

c++ - openCV 中的 cvDCT