C++ 对象创建方式
来源:互联网 发布:视频监控数据恢复 编辑:程序博客网 时间:2024/05/18 03:34
原址
C++在创建对象的时候可以采用两种方式:(例如类名为Test) Test test 或者 Test* pTest = new Test()。
这两种方法都可以实例化一个对象,但是这两种方法有很大的区别,区别在于对象内容所在的内存空间不同,众所周知,内存的分配方式有三种(1)从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。
(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束后在将这些局部变量的内存空间回收。在栈上分配内存空间效率很高,但是分配的内存容量有限。
(3) 从堆上分配的。程序在运行的时候用 malloc 或 new 申请任意多少的内存,程序员自己负责在何时用 free 或 delete 释放内存。
不使用new创建的对象在栈中分配内存空间,自动调用析构函数删除该对象;
使用new创建的对象在堆中分配内存空间,必须手动释放该对象的内存空间。
1、使用new方式创建类对象
new之前不为该类对象分配任何内存空间,new申请的对象,则只有调用到delete时再会执行析构函数,如果程序退出而没有执行delete则会造成内存泄漏。
2、使用变量定义方式创建类对象
3、new创建类对象与不new区别
下面是自己总结的一些关于new创建类对象特点:
- new创建类对象需要指针接收,一处初始化,多处使用
- new创建类对象使用完需delete销毁
- new创建对象直接使用堆空间,而局部不用new定义类对象则使用栈空间
- new对象指针用途广泛,比如作为函数返回值、函数参数等
- 频繁调用场合并不适合new,就像new申请和释放内存一样
阅读全文
0 0
- C++——对象创建的两种方式
- 用jni的方式c/c++语言创建Java对象
- C/C++创建对象的两种方式
- js对象创建方式
- C++ 对象创建方式
- javascript对象创建方式
- java创建对象方式
- javascript对象创建方式
- JAVA对象创建方式
- C++ 对象创建方式
- 创建对象的方式
- 创建对象的方式
- C++ 对象创建方式
- c对象创建
- 创建com对象的方式
- java对象的创建方式
- Java创建对象的方式
- Java创建对象的方式
- #poj1180#Batch Scheduling (经典逆推Dp+斜率优化)
- mybatis一个怪异的问题: Invalid bound statement not found 作者及来源: babyblue
- PS命令详细说明
- 数电第四章总结——《组合逻辑电路》
- HVR F_JG2018
- C++ 对象创建方式
- php入门学习-----const&static&final关键字
- web工程查不到数据
- jTessBoxEditor训练验证码图片
- Android基础入门の单元测试
- @EnableAsync annotation metadata was not injected
- 微信公众号开发_Java(3)--接收普通消息
- 网页获取当前用户位置信息
- 170608 python彩色代码打印与页眉文件完整路径设置