作者yshihyu (yshihyu)
看板C_and_CPP
標題[問題] C++ 語法問題
時間Fri Mar 4 00:17:03 2016
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
https://github.com/OSVR/OSVR-Core/blob/master/plugins/videoimufusion/VideoIMUFusion.cpp
上面網址的156 行
StartupData()
: last(getNow()), positionFilter(filters::one_euro::Params{}),
orientationFilter(filters::one_euro::Params{}) {}
上面是 class constructor initializer list
不懂 positionFilter(filters::one_euro::Params{}) 為什麼可以 assign, 它們之間沒有class 不同class 也沒有繼承關係
filters::one_euro::Params{} 是什麼特殊語法嗎?
Params 型態定義如下
struct Params {
Params() : minCutoff(1), beta(0), derivativeCutoff(1) {}
Params(double minCut, double b, double dCut = 1)
: minCutoff(minCut), beta(b), derivativeCutoff(dCut) {}
double minCutoff;
double beta;
double derivativeCutoff;
};
filters::OneEuroFilter<Eigen::Vector3d> positionFilter;
positionFilter 型態如下 , 因為程式碼有點長, 我貼網址在178行
https://github.com/OSVR/OSVR-Core/blob/master/inc/osvr/Util/EigenFilters.h
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.182.180.138
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1457021829.A.841.html
推 BlazarArc: ? constructor 不就寫了嗎? 03/04 00:43
→ BlazarArc: explicit OneEuroFilter(Params const &p) 03/04 00:44
→ yshihyu: 大致董了... 那Params{} 這語法算是? 03/04 00:50
推 BlazarArc: C++11 uniform initialization 03/04 00:55
推 LPH66: en.cppreference.com/w/cpp/language/list_initialization 03/04 02:48