【问题标题】:What is the meaning of & placed at the end of a declaration? [duplicate]& 放在声明末尾是什么意思? [复制]
【发布时间】:2015-09-29 09:55:16
【问题描述】:

首先,感谢您的时间和考虑! 我是一个 fortran 用户,对 c++ 很陌生,我需要你的帮助来理解一些传递给我的编码。我正在粘贴一小部分最困扰我的代码。

tmp<volScalarField> talpha = thermo.alpha();
const volScalarField& alpha = talpha();
tmp<volScalarField> tkappa = thermo.kappa();
const volScalarField& kappa = tkappa();

volScalarField& h = thermo.he();

const volScalarField& betav = betavSolid[i];

fv::IOoptionList& fvOptions = solidHeatSources[i];

我主要关心的是声明末尾的“&”,这是什么意思?另外,为什么要创建一个 tmp 字段 talpha 并声明 next alpha=talpha ?为什么不直接将 thermo.alpha() 分配给 alpha 呢?

【问题讨论】:

  • Stackoverflow 并不是为了教你基本的 C++ 语法。
  • 要学习这样的基础知识,阅读good book 比就 SO 提出分段问题要好得多。
  • @skyking ???它实际上被标记为欺骗?
  • @πάνταῥεῖ 不在我的显示器上!??
  • @πάνταῥεῖ 出于某种奇怪的原因,在我发表评论时它不是(至少在我的显示器上)。不过,“可能是骗局”的评论已被删除。

标签: c++ operator-keyword


【解决方案1】:

这是一个引用类型。

C++ 具有三种基本类型:值、指针和引用。引用类型类似于指针,但有两个例外:

  • 引用必须在创建时初始化(通过对值或其他引用的赋值操作),
  • 无法将引用更改为引用另一个变量(类似于“常量指针”),
  • 引用对结构和类字段使用类似“点”运算符的值,而不是像指针那样使用“箭头”。

【讨论】:

  • 这里有一些误导性的陈述。
  • @LightnessRacesinOrbit:您愿意详细说明一下吗?
猜你喜欢
  • 2011-03-09
  • 1970-01-01
  • 2015-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-07
  • 1970-01-01
  • 2021-12-16
相关资源
最近更新 更多