C ++覆盖语法

时间:2013-10-30 20:43:34

标签: c++ abstract-class intel function-overriding perceptual-sdk

我正在使用英特尔的PCSDK,从抽象类的构造函数被覆盖的示例中我无法从语法上理解这一部分。具体来说,这一行:

GesturePipeline (void):UtilPipeline(),m_render(L"Gesture Viewer") {
EnableGesture();
}

UtilPipeline()和m_render之间的逗号是什么意思?这是上下文的完整代码:

#include "util_pipeline.h"
#include "gesture_render.h"
#include "pxcgesture.h"
class GesturePipeline: public UtilPipeline {
public:
GesturePipeline (void):UtilPipeline(),m_render(L"Gesture Viewer") {
EnableGesture();
}
virtual void PXCAPI OnGesture(PXCGesture::Gesture *data) {
if (data->active) m_gdata = (*data);
}
virtual void PXCAPI OnAlert(PXCGesture::Alert *data) {
switch (data->label) {
case PXCGesture::Alert::LABEL_FOV_TOP:
wprintf_s(L"******** Alert: Hand touches the TOP boundary!\n");
break;
case PXCGesture::Alert::LABEL_FOV_BOTTOM:
wprintf_s(L"******** Alert: Hand touches the BOTTOM boundary!\n");
break;
case PXCGesture::Alert::LABEL_FOV_LEFT:
wprintf_s(L"******** Alert: Hand touches the LEFT boundary!\n");
break;
case PXCGesture::Alert::LABEL_FOV_RIGHT:
wprintf_s(L"******** Alert: Hand touches the RIGHT boundary!\n");
break;
}
}
virtual bool OnNewFrame(void) {
return m_render.RenderFrame(QueryImage(PXCImage::IMAGE_TYPE_DEPTH),
QueryGesture(), &m_gdata);
}
protected:
GestureRender m_render;
PXCGesture::Gesture m_gdata;
};

5 个答案:

答案 0 :(得分:1)

初始化基类和成员变量的initializer list

GesturePipeline (void) // constructor signature
  : UtilPipeline(), // initialize base class
    m_render(L"Gesture Viewer") // initialize member m_render from GesturePipeline
{
    EnableGesture();
}

答案 1 :(得分:1)

答案 2 :(得分:1)

这是构造函数的初始化列表,用于指定在构造函数体开始之前如何初始化基础子对象和数据成员。

这个值初始化基础子对象,然后通过将字符串传递给其构造函数来初始化m_render成员。另一个数据成员是默认初始化的,因为它没有出现在列表中。

答案 3 :(得分:1)

这是member initializer list.

GesturePipeline (void):UtilPipeline(),m_render(L"Gesture Viewer") {
EnableGesture();
}

首先使用默认构造函数UtilPipeline初始化基类,然后使用m_render初始化m_render(L"Gesture Viewer")。最后,它进入函数体并执行EnableGesture()

答案 4 :(得分:1)

这是一个初始化列表。您正在初始化该类中的元素。 Quick tutorial。逗号分隔您正在初始化的元素。它调用基础构造函数然后初始化它自己的元素。