* 与该类有什么作用

What does the * do with that class?

本文关键字:什么 作用      更新时间:2023-10-16

这可能是一个"愚蠢"的问题,但我不知道*在该代码中做了什么。

ClassA* classa;

ClassA 是一个类,那么 * 实际上对一个类有什么作用?这个 "运算符" 怎么叫?

*

对类执行任何操作,它通过使其成为指针来更改声明变量的类型:

ClassA *classa; // classa is a pointer to ClassA

您可以添加多个星号以使指针指向指针,指针指向指针,依此类推:

ClassA **classa; // classa is a pointer to pointer to ClassA
ClassA ***classa; // classa is a pointer to pointer to pointer to ClassA

请注意,当在表达式(而不是声明)中使用相同的星号时,它会"降低"指针的级别,因此

ClassA *classa;
foo(*classa); // Dereferences the pointer, producing ClassA

指针声明。

在此声明之后,classa 是一个类型为"指针到类 A 对象"的变量。 它可以指向任何ClassA对象,也可以指向从ClassA继承的任何对象