![](/img/trans.png)
[英]how to use pointers in a matrix. what does this line of code do/mean: int r=**(++b);
[英]Pointers: What does this line of code mean?
我是编程新手,但今年夏天有实习机会,我正在尝试使这段代码运行。
我正在查看别人的c ++代码(“用于Triangular Meshes的精确测地线”开放源代码),一行被绊倒了。 无论如何,该行如下所示:
geodesic::Mesh* mesh = algorithms[algorithm_id]->mesh();
如果我错了,请纠正我,但首先要初始化一个指针。 看起来像
class::pointerclass* thingpointedto = something[something] accessing member mesh();
我不知道equals操作数右侧的代码是什么意思。 谁能帮我吗?
geodesic::Mesh* mesh = algorithms[algorithm_id]->mesh();
在这里, algorithms
可以是以下一种类型:
algorithm_id
索引 operator[]
顺序容器,例如std:vector
,它用整数类型整数algorithm_id
索引 operator []
的关联容器,例如std::map
,该容器以键类型对象algorithm_id
索引 operator []
使用自定义类型的对象索引, algorithm_id
通过它的签名所指示 数组 []
访问返回指向对象的指针(常规指针或智能指针),该对象具有成员函数mesh()
,该函数返回指向geodesic::Mesh
对象的指针。
返回值algorithms[algorithm_id]
未binded
到任何东西,相反, 持有临时(如果尚未参考); 然后调用其成员函数mesh()
看一下潜在的来源,我会说这是一个std::vector<algorithm_shared_pointer>
。 其中algorithm_shared_pointer
是boost::shared_ptr<geodesic::GeodesicAlgorithmBase>
的typedef。
geodesic::Mesh* mesh = algorithms[algorithm_id]->mesh();
geodesic
是一个名称空间, Mesh
类位于该名称空间中。 我们创建一个指向该类的指针。 指针被分配了可以由geodesic::GeodesicAlgorithmBase
调用的函数mesh()
的结果。 algorithm_id
是一个int
,它作为包含此行的函数的参数提供。
该整数用于选择向量中的索引。
这将导致:
namespace::pointerToClass* nameOfPointer
= std::vector<boost::shared_ptr<geodesic::GeodesicAlgorithmBase>>[int]->mesh();
考虑到由于mesh()
返回类型为geodesic::Mesh*
它可能已使用auto
所以这是一段奇怪的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.