理解c ++代码;*datatype和classname :: method是什么意思?

num*_*l25 6 c c++

我是C++的新手,我正在尝试理解一些代码.在数据类型前面有一个*是什么意思?为什么类名称在方法名称前面CAStar::LinkChild

void CAStar::LinkChild(_asNode *node, _asNode *temp)
{

}
Run Code Online (Sandbox Code Playgroud)

Ree*_*sey 6

  1. 数据类型前面的A*表示变量是指向数据类型的指针,在本例中是指向节点的指针.而不是将整个"节点"的副本传递给方法,而是传入内存地址或指针.有关详细信息,请参阅本C++教程中的指针.

  2. 方法名称前面的类名指定这是定义CAStar类的方法.有关详细信息,请参阅教程页面.

  • 此外,您可以将其视为消除函数名称歧义的一种方式.例如,假设您有两个类(简单示例); 一个实现了分数(Fraction),另一个实现了整数(Integer).这两个类都可能有一个名为"add"的函数.通过包含类名Fraction,编译器将知道您正在为Fraction类而不是Integer类实现add函数. (2认同)