一个声明中的多个函数的原型

时间:2016-03-13 19:06:44

标签: c++ prototype

快速新手问题:如何阅读下面的代码块(它来自教科书基于物理的渲染第12.1节)?这是我以前从未见过的东西。它是Light类的三个不同函数的原型(即Light :: nSamples,Light :: LightToWorld和Light :: WorldToLight)?

(Light Interface) ≡                                                                                  606
Light(const Transform &l2w, int ns = 1)
    : nSamples(max(1, ns)), LightToWorld(l2w),
       WorldToLight(Inverse(l2w)) {
     (Warn if light has transformation with scale)
}

2 个答案:

答案 0 :(得分:1)

你有一堆与c ++语法混合的伪代码。

(Light Interface) ≡

这意味着什么,可能是评论。你甚至在那里有一些Unicode字符。

其余的看起来像是class Light

的构造函数的错误定义
Light(const Transform &l2w, int ns = 1)

这是带有它的参数的构造函数,它有一个错误,因为它应该是Light::Light(const Transform &l2w, int ns = 1)

    : nSamples(max(1, ns)), LightToWorld(l2w),
       WorldToLight(Inverse(l2w))

这是成员变量和基类的实例化。

{
     (Warn if light has transformation with scale)
}

这里将使用构造函数代码,而不是另一个奇怪的伪代码注释。

答案 1 :(得分:0)

你之前从未见过它是一个很好的理由。这是胡说八道:

(Light Interface) =

其余的,如果是写的

Light::Light(const Transform & l2w, int ns - 1)
...

将是构造函数的定义。

我不熟悉这本书的来源,但我怀疑这种非正式性实际上会有所帮助。

相关问题