函数可以继承参数吗?

时间:2014-08-29 11:13:43

标签: c++ function inheritance

在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)中?

1 个答案:

答案 0 :(得分:4)

因为此函数与类具有相同的名称,所以它是类的构造函数,在实例化类时自动调用。

冒号后面的变量列表是初始化列表,用于将初始值赋给类的成员变量。

您只能使用构造函数执行此操作,而不仅仅是任何函数,因此您的代码将无法正常工作。你必须调用函数“A”才能做到这一点。