在KinFu翻拍的源代码中,我找到了以下结构:
kfusion::OpenNISource::OpenNISource() : depth_focal_length_VGA (0.f), baseline (0.f),
shadow_value (0), no_sample_value (0), pixelSize (0.0), max_depth (0) {}
以下参数:在类kfusion :: OpenNISource中声明。 OpenNISource()函数也在此类中声明。由于我是C ++的新手,我认为函数继承并声明变量......(?)
以下代码是否会将变量(foo,bar)和值(0,1.0f)添加到函数中?
class A
{
public:
fn ();
fn (int qux);
int foo;
float bar;
};
A::fn() : foo(0), bar(1.0f) {}
如果是这样,这些变量是否也会被添加到fn(int qux)中?
答案 0 :(得分:4)
因为此函数与类具有相同的名称,所以它是类的构造函数,在实例化类时自动调用。
冒号后面的变量列表是初始化列表,用于将初始值赋给类的成员变量。
您只能使用构造函数执行此操作,而不仅仅是任何函数,因此您的代码将无法正常工作。你必须调用函数“A”才能做到这一点。