InQ*_*ive 0 c++ arrays pointers new-operator
我在C++中遇到了Hash Map实现.HashMap的构造函数包含下面的代码.这条线new HashEntry*[TABLE_SIZE]说的是什么.我以前从未见过这样的结构.它如何返回指针指针?
class HashMap {
private:
HashEntry **table;
public:
HashMap() {
table = new HashEntry*[TABLE_SIZE];
for (int i = 0; i < TABLE_SIZE; i++)
table[i] = NULL;
}
};
Run Code Online (Sandbox Code Playgroud)
甲new表达总是返回一个指针.new根据[expr.new],一个数组的表达式产生了强调我的意思:
当分配的对象是数组时(即,使用noptr-new-declarator语法或new-type-id或type-id表示数组类型),new-expression 产生指向初始元素的指针(如果任何)数组.[注:既
new int与new int[10]具有类型int*和类型new int[i][10]是int (*)[10]末端音符]的属性说明符-SEQ的noptr新声明符appertains到相关联的数组类型.
该行正在创建一个新HashEntry*的大小数组TABLE_SIZE.该表达式的返回类型是指向初始元素的指针,该元素是类型的HashEntry*.因此HashEntry**.
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |