c++ - 这个函数 “a::b::ptr function(value)”调用在C++中如何工作?

标签 c++ function pointers scope

我实际上是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/

相关文章:

java - jni native 方法在文件打开时卡住

c++ - 如何在 C++ 中访问列表中的列表?

function - laravel - 为什么函数调用没有括号?

python:如何在不更改参数的情况下调用函数?

c++ - C++ 中指针的段错误

c++ - cout on extra thread - 线程安全

c++ - 以闪电般的速度缩放一组值

php - 在sql查询中调用用户定义的函数

pointers - 访问结构字段时 Golang 结构文字和指针之间的区别

c - 如何使用动态内存分配将元素分配给矩阵?