c++ - 在 .cpp 文件中定义类是好的 C++ 吗?
问题描述
我是 C++ 的初学者。我有一个关于 C++ 设计的问题。
我的文件包含A
, B
, C
, D
,E
类定义。类A
包含其他应用程序使用的 API。我已经在一个.h
文件中定义了这个。Classes B
, C
, D
&E
通过继承某个库提供的抽象类来定义具体类。这些定义不被任何外部应用程序使用,而仅由 class 使用A
。
我在网上看到所有的类定义都在一个.h
文件中提供,函数实现在一个.cpp
文件中。我的问题是,即使任何人都没有在外部使用 class B
、C
和D
&E
定义,我应该在.h
文件中定义它们吗?如果我确实在那里定义了它们,我不能将它们暴露给其他应用程序,对吧?
解决方案
如果一个类只在一个模块中本地使用,您可以在 .cpp 文件中声明它。这实际上是一种很好的做法;不要暴露超过必要的部分。
如果您需要在标头中定义一个类(或函数等)(例如,在几个相关的 .cpp 文件之间共享它)但又不想公开公开它,您可以有一个单独的,私有头文件,只包含在相关地方,不公开。这可以通过将“private”附加到头文件名来暗示。
推荐阅读
- ldap - 防止用户多次更改密码 - openldap
- node.js - R3InjectorError(AppServerModule) 没有 InjectionToken compilerOptions 的提供者
- python - 获取 Radiobutton Python tkinter 的值
- powershell - DirectorySearcher 查找具有特定经理的所有条目
- pandas - 在有条件的情况下重新启动 Pandas 中的 cumsum
- swift - 组合:Just 和 first() 之间的区别来完成一个流
- sql - 跳过 Postgres 中的 WHERE 子句,具体取决于参数
- python - Python 中的 VLOOKUP 与 JSON 或 CSV
- reactjs - 在步进器中保持先前选择的项目状态
- javascript - 通过标签下载 kml 文件,浏览器不处理 mimeType 'application/vnd.google-earth.kml+xml'