C ++:内联函数的可能性,多个类的朋友?

时间:2013-09-01 16:51:12

标签: c++ inline friend file-organization

我正在努力实现球体和三角形之间的交叉点测试。

我想设计一个功能来做到这一点。函数sphere_triangle_intersection_test( ... )应声明为friendclass sphere的{​​{1}}函数,因为这允许访问私有成员。 (因此,由于没有函数调用class triangleget()方法,因此效率可能更高。

每个循环都会调用很多次函数,所以最好把它变成set()函数。

但是,至少根据我的理解,inline函数必须与类声明在同一文件中出现(定义)。

由于我使用的是每个类一个标头的格式,有没有办法解决这个问题?

我猜一种可能性是:

  • 为要驻留的inline创建文件sphere.hpp
  • 为要驻留的class sphere创建文件triangle.hpp
  • 在两个类中声明为class triangle执行交叉测试的函数。
  • 创建一个文件friend inline [return type],其中包含要执行测试的collisiontest.impl函数的定义。
  • {li> inline #include "sphere.hpp"
  • triangle.hpp的末尾,`#include“collisiontest.impl”。

虽然看起来有点狡猾但很容易忘记triangle.hpp被包含在文件的底部......

有没有人对我如何改变/改进我在这里得到的东西有任何建议?

修改

我刚刚想到我可以使用以下内容创建另一个文件collisiontest.impl

shapes_INCLUDE_ME.hpp

那么你只需要包含一个文件,可能会有所收获吗?现在没有关于在类文件末尾忘记#include的问题。

0 个答案:

没有答案