版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 4.0
动态创建对象的初始化
1 | int i(1024); |
动态创建对象的默认初始化
1 | string *sp = new string; //空string |
可以利用下列方式进行默认初始化
1 | string *sp = new string(); //空string |
撤销动态创建对象
1 | int i; |
C++未明确定义如何释放非new分配的内存地址。
delete后重设指针的值
执行delete语句后,尽管指针变成未定义,但仍存放了之前所指对象的地址,称为 悬挂指针(dangling pointer) 。这种指针往往容易出错。
一旦delete指针,立即将其置为0,就可以避免悬挂指针。
const对象的动态分配和回收
1 | const int *cip = new const int(1024); //必须初始化,且不能再修改 |
如果有默认构造函数,则可以隐式初始化,如
1 | const string *csp = new const string; |
尽管不能改变const对象的值,但可撤销对象本身
1 | delete cip; //ok |
END.