ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
new创建类对象与不new区别: new创建类对象需要指针接收,一处初始化,多处使用 new创建类对象使用完需delete销毁 new创建对象直接使用堆空间,而局部不用new定义类对象则使用栈空间 new对象指针用途广泛,比如作为函数返回值、函数参数等 而且每个学习C++编程的人都知道成对的使用new和delete,也也就是new申请的内存用delete释放,new []申请的内存由delete []释放。 ~~~ std::string* first_string = new std::string; std::string* second_string = new std::string[100]; delete first_string; delete [] second_string; ~~~ 这一规则,在实际工作中也应该牢记于心。但是我还是没有躲过这个坑儿。 看看情况吧: 首先使用了typedef进行一些定义; ~~~ typedef std::string address_lines[4]; std::string *third_string = new address_lines; delete third_string ~~~ 这个就是遇到的坑儿,被表面所迷惑。 所以在Effectice C++中 item16就讲到了: 最好尽量不要对数组形式做typedef动作。