* 与该类有什么作用
What does the * do with that class?
这可能是一个"愚蠢"的问题,但我不知道*在该代码中做了什么。
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
继承的任何对象
相关文章:
- archive_read_support_filter_all() 有什么作用?
- 当我们为(;;) 写作时,它做了什么?for 循环中的双分号有什么作用?
- 这个递归函数有什么作用?运行时的复杂性是多少?
- DrawShadow 中的 Elevation 究竟有什么作用?
- 测试"stream >> char"有什么作用?
- "uFlags &= ~CHN_PANNING"命令有什么作用?
- GCC 的 -Wpsabi 选项究竟有什么作用?压制它意味着什么?
- int** a = new int*[n]();这个函数有什么作用?
- C++ 此函数调用之前的(void)有什么作用?
- i+=(i&-i) 有什么作用?它是便携式的吗?
- 这个size_t在 lambda 中有什么作用?C++代码
- 数组下标运算符 ([ ]) 对数组有什么作用?
- 结构之外的节点 * head 有什么作用?
- 重载括号运算符有什么作用?
- clang的"-Ofast"选项在实践中有什么作用,特别是对于与gcc的任何差异?
- std::make_unique_for_overwrite() 对 std::make_unique() 有什么作用?
- 运算符 delete[] 有什么作用?
- 下面的代码有什么作用?c++
- 这个陈述'p = I.ptr<uchar>(i);有什么作用?
- 这个嵌套的名称空间定义有什么作用