c++ - C++哪里写一个类的函数?
问题描述
在我的 C++ 项目中,我有 2 个文件:trip.h trip.cpp
如果我想编写一个辅助函数,它接受两个整数并返回它们的乘法,我应该在哪里写它以及如何写(常量、静态等......)?注意:当我们将其声明为静态时,我不希望用户能够像在 C 语言中那样使用它。
如果一个函数需要访问私有成员,我们在类中将其声明为友元。但是,我应该在 .h 文件中的类之外再次写它的标题并将其定义写在 .cpp 文件中吗?注意:我被要求使其成为一个外部函数,这意味着在课堂之外编写。
编辑:我想回答上面的确切问题,我知道我可以按照建议通过不同的方式解决这个问题,但我想坚持这种方法
解决方案
我会将trip.cpp中的函数声明并实现为静态函数。C++ 与 C 向后兼容,因此 C 中的任何内容都适用。如您所知,声明函数静态限制是对该目标文件的可见性。
我会为该类使用静态 私有方法。这里的静态意味着与#1 不同的东西——新的含义是它可以在不关联到它所声明的类的任何实例的情况下被调用。私有意味着它可以调用该类的私有方法(前提是它首先具有对象的句柄)。如果函数相对较短,我只会在 .h 文件中实现它——尽管许多人更喜欢在 .cpp 文件中实现它。
推荐阅读
- javascript - 旅行商问题实现语言
- mongodb - MongoDB 在许多字段上按日期聚合
- java - 即使在完成样本测试用例后也无法得到正确答案
- google-apps-script - 嵌入在谷歌表中的谷歌脚本添加一个菜单项
- python-3.x - 如何在列表列表中查找值的频率并通过共同值与另一个现有列表组合?
- wpf - 调整 WPF 图表工具包 ColumnSeries (System.Windows.Controls.DataVisualization.Charting)
- javascript - 反应:无法使用索引访问组件状态中的数组数据
- javascript - 如何让我的自动图像轮播循环回到第一个图像而不暴露第二个图像
- python - Docker构建不安装依赖项
- flutter - 如何将从我的条形码扫描仪接收到的扫描结果数据解析到新的屏幕或页面中颤动