2

我有以下 C++ 代码:

标题:(在类内)

virtual const bigint &getPopulation() ;

执行:

static bigint negone = -1 ;
const bigint &hlifealgo::getPopulation() {
   // note:  if called during gc, then we cannot call calcPopulation
   // since that will mess up the gc.
   if (!popValid) {
      if (inGC) {
        needPop = 1 ;
        return negone ;
      } else {
        calcPopulation(root) ;
        popValid = 1 ;
        needPop = 0 ;
      }
   }
   return population ;
}

我把它移植到Delphi,它工作得很好。我仍然对 const 返回类型有点困惑。

我可以忽略const翻译中的内容,还是这里有什么要注意的?

Delphi中有这个概念的类比吗?

4

1 回答 1

6

Delphi 中没有类似的东西。你这里有一个const参考。Delphi 没有区分可变引用和常量引用的机制。所有的引用都可以用来改变一个对象。所以这不是与const返回类型相关的特别问题,更多的是 Delphi 不支持常量引用。

在将代码从 C++ 移植到 Delphi 时,您别无选择,只能忽略const引用。在 Delphi 中,您无法区分不同类型的引用,只有一种。

于 2013-09-12T14:45:15.790 回答