我想知道在Fortran中是否有类似于C ++中的“朋友功能”。我希望能够在不创建新对象的情况下使运算符重载,因为它太昂贵了。我已经尝试在模块中创建对象,并尝试使重载的运算符返回它,但未成功。
您对friend
C ++含义的理解不正确。这就涉及到朋友函数内部私有类成员的可访问性,而不是作为操作员重载的一部分来创建对象。Fortran的可访问性模型是不同的-在同一模块中与类型定义的任何过程都是“朋友”,在可访问性方面,没有与成员函数等效的过程。
两种语言中表达评估的语义都要求运算符的源实现创建一个新的对象来存储运算结果。花哨的编译器优化在某些情况下可能会阻止实际为函数结果创建临时变量,但这在很大程度上取决于细节。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句