c – 是否建议将指针指向堆内存为“const”?

T *p = new T();

对于堆上的指针,可能会有灾难性的操作,

p++;  // (1) scope missed
p = new T(); // (2) re-assignment

这将导致内存泄漏或由于删除错误而导致的崩溃.除了使用智能指针,总是使堆指针成为const;

T* const p = new T();  // Now "p" is not modifiable

这个问题在于保持良好的编程实践和编码风格.

解决方法

我犹豫,总是说,但你提出的看法似乎是很多/大多数情况下合理的. Const的正确性是大多数C人在功能参数中付出了相当大的关注,但在本地(甚至是成员)变量中并不多.我们可能会更好地这样做.

相关文章

对象的传值与返回说起函数,就不免要谈谈函数的参数和返回值...
从实现装饰者模式中思考C++指针和引用的选择最近在看...
关于vtordisp知多少?我相信不少人看到这篇文章,多半是来自...
那些陌生的C++关键字学过程序语言的人相信对关键字并...
命令行下的树形打印最近在处理代码分析问题时,需要将代码的...
虚函数与虚继承寻踪封装、继承、多态是面向对象语言的三大特...