我实际上是C++的新手,我试图弄清楚编译器如何执行以下行:
pcl::ModelCoefficients::Ptr coefficients (new pcl::ModelCoefficients ());
我知道创建了
pcl::ModelCoefficents()
类型的堆内存,并将其指针传递给了函数coefficients()
。让我感到困惑的是,我们不应该使用如下所示的箭头运算符:pcl::ModelCoefficients::Ptr->coefficients (new pcl::ModelCoefficients ());
最佳答案
该声明
pcl::ModelCoefficients::Ptr coefficients (new pcl::ModelCoefficients ());
可以改写成
pcl::ModelCoefficients::Ptr coefficients = new pcl::ModelCoefficients;
我认为第二个版本显示了更好的进展。
简而言之,该行定义了一个类型为
coefficients
的名为pcl::ModelCoefficients::Ptr
的变量。然后,使用coefficients
的结果初始化new pcl::ModelCoefficients
。关于c++ - 这个函数 “a::b::ptr function(value)”调用在C++中如何工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60520744/