CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    "object_()","对象名_()"这是什么用法?

    OpenFOAM
    2
    5
    532
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • J
      JqBu 最后由 编辑

      在看拉格朗日库的时候发现例如dispersion,surfaceFilm这种模型的表达看不太懂,他们的定义都比较特殊,请问大神这是什么用法?

      以surfaceFilm举例:调用的位置在:
      a8b1152c-f1b1-4320-a37a-bcfd88b3a5af-1640180447(1).png

      而surfaceFilm()的定义在KinematicCloudI.H里,代码如下:
      4a9603a3-e638-498d-9409-2c7436229262-1640180536(1).jpg

      看到这里就比较懵了,surfaceFilmModel_这个object后面又接了个()是什么表达?返回了什么值?请问有没有大神可以指点一下?我发现拉格朗日库里好多子模型都是这样调用的

      1 条回复 最后回复 回复 引用
      • 李东岳
        李东岳 管理员 最后由 编辑

        @jqbu 在湍流模型里面出现过类似的k_(),这个()操作符重载了,把geometricField变成了内部场。你这个看起来也是()操作符重载。看看是不是tmp类型,或者geometricField?

        CFD高性能服务器 http://dyfluid.com/servers.html

        J 2 条回复 最后回复 回复 引用
        • J
          JqBu @李东岳 最后由 编辑

          @李东岳 东岳老师,这里的surfaceFilmModel_在KinematicCloud类里被定义为autoPtr<SurfaceFilmModel<KinematicCloud<CloudType>>>类型,按您操作符重载的说法,我应该去哪找这里操作符重载的返回的类型?我看autoPtrI.H里有一些操作符重载的表达,但是没找到类似于inline T& Foam::autoPtr<T>::operator(){ }这样的表达,只有下面这种的
          742902e7-9ef2-40ef-9832-afaee56d8f9b-1640183402(1).png
          这里return的*ptr_在autoPtr.H里被定义为T类型

          请问东岳老师能举个例子这种情况应该怎么找吗

          1 条回复 最后回复 回复 引用
          • J
            JqBu @李东岳 最后由 编辑

            @李东岳 东岳老师,感谢您的回复,除了上面那个问题,还想再请教您另外一个问题,请问下图标红的部分是上面语法呀?老师能介绍一下operator的逻辑吗?
            31265a23-727f-43bb-b62c-6a030e05e761-1640186901(1).png

            再次谢谢老师!

            李东岳 1 条回复 最后回复 回复 引用
            • 李东岳
              李东岳 管理员 @JqBu 最后由 李东岳 编辑

              @jqbu operator最好看C++的operator重载,https://www.cplusplus.com/doc/tutorial/functions2/ 你说的这个,只不过附加了个(i),应该是不同的离子注入模型

              CFD高性能服务器 http://dyfluid.com/servers.html

              1 条回复 最后回复 回复 引用
              • First post
                Last post