在c++中调用delete时可选括号
Optional brackets while calling delete in C++
假设我创建了一个对象Shape *shape = new Shape()
。然后我可以使用delete
关键字释放内存。但是有两种写法:
delete (shape); //with brackets
和
delete shape; //without brackets
首先可以清楚地理解shape
是delete
函数的参数。但是第二个呢?引擎盖下面发生了什么?
delete不是函数,但操作符和括号并不表示调用它。你可以用括号来划分变量名,因为。
例子:
int a = 5;
int b = a;
b = (a); //also ok
你可以在这里阅读关于使用delete操作符
相关文章:
- 运算符C++ "delete []"仅删除 2 个前值
- g++用户定义的动态链接库上的全局new和delete运算符
- 为什么"delete"关键字不删除节点?
- "delete"在 C++ 中实际上做了什么?
- 析构函数和'delete'之间的区别
- 如何知道何时调用删除以及何时调用 delete[] C++?
- 在对象指针上调用 Delete 是否会递归删除其动态分配的成员
- 体系结构x86_64的未定义符号:std:terminate(),typeinfo,运算符delete[],运算符new
- 析构函数中的"delete this"
- 为什么数组大小信息可用于"sizeof"运算符和 delete[] 运算符,但在将数组作为参数传递到
- 即使在使用 delete[] 后仍保留的元素
- 如果我在下面的代码片段中添加"delete[] d;",为什么我得到零?
- C++原始指针和"delete"
- 为什么 std::vector 使用 std::分配器而不是运算符 new 和 delete?
- 重载 new 和 delete 会导致 valgrind 错误
- 为什么"delete"操作员给我访问权限冲突
- 析构函数是否会自动调用 delete[] C++?
- C++"::delete"的目的是什么?
- 使用 delete [] 运算符取消分配类中数据成员的内存
- 基类指针:在哪里使用 new 和 delete