【问题标题】:C++ helper functions in class, how to use them?类中的 C++ 辅助函数,如何使用它们?
【发布时间】:2020-09-27 14:54:38
【问题描述】:

在我的 C++ 课程中,我想编写一个辅助函数(外部用户无法看到或使用)并找到了两种方法:

1).h 文件中将其声明为私有,并在.cpp 文件中编写实现。

2) 直接在.cpp 文件中编写实现而不在.h 文件中声明。

什么是正确的方法,一个人对另一个人有什么不同或优势?

【问题讨论】:

  • 如果你不在类中声明函数,它将无法访问私有成员。
  • 很大程度上取决于你想要达到的目标
  • 你通过调用函数来使用它们。
  • @cigien 所以1和2都一样?

标签: c++ class methods


【解决方案1】:

由于你没有通过你的接口公开这个函数,你不应该在公共头文件中声明它。如果在单个 cpp 文件中使用它,请在该 cpp 文件的匿名命名空间中声明它。如果您在多个 cpp 文件中使用此函数,但仍不希望将其作为界面的一部分,则可以在源文件中创建 #include 的内部头文件,但不属于您的库的公共部分界面。

【讨论】:

    【解决方案2】:

    方法是创建一个对公众可见的类 A,然后创建该类的后代类 B 并私下实现它。然后,当你被要求创建一个 A* 时,创建一个也是 A* 的 B* 并返回它。您的代码看到的是 B*,但类的用户看到的是 A*,并且只能访问在 A 中声明的方法和变量。您还需要使用某些函数而不是使用 new/delete 创建/销毁指针。

    很像 COM 如何实现 IUnknown 之类的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-28
      • 1970-01-01
      • 2017-04-27
      • 2023-03-20
      • 1970-01-01
      • 2012-11-21
      • 2018-07-08
      • 1970-01-01
      相关资源
      最近更新 更多