网站设计好以后怎么上线,东莞找工作求职招聘,wordpress 音乐服务器,水果网站模板文章目录 一、C 对象的动态创建和释放1、C 语言 对象的动态创建和释放 的方式2、C 语言 对象的动态创建和释放 的方式 二、代码示例 - 对象的动态创建和释放 一、C 对象的动态创建和释放 使用 C 语言中的 malloc 函数 可以为 类对象 分配内存 ;
使用 free 函数可以释放上述分配… 文章目录 一、C 对象的动态创建和释放1、C 语言 对象的动态创建和释放 的方式2、C 语言 对象的动态创建和释放 的方式 二、代码示例 - 对象的动态创建和释放 一、C 对象的动态创建和释放 使用 C 语言中的 malloc 函数 可以为 类对象 分配内存 ;
使用 free 函数可以释放上述分配的内存 ;
使用 C 语言中的 new 运算符 也可以为 类对象 分配内存 ;
使用 delete 运算符 可以释放上述分配的内存 ;
首先 , 定义一个类 Student , 再为其定义一个有参的构造函数 , 和 析构函数 ;
class Student
{
public:// 带参构造函数Student(int age, int height){m_age age;m_height height;cout 执行 Student 的构造函数 endl;}~Student(){cout 执行 Student 的析构函数 endl;}public:int m_age; // 年龄int m_height; // 身高
};之后 , 分别使用 C 语言的 动态内存管理 和 C 语言的 动态内存管理 , 分别创建和释放 Student 类实例对象 ; 1、C 语言 对象的动态创建和释放 的方式 C 语言中提供了 malloc / calloc 等申请 堆内存的 函数 ;
这里 使用 C 语言 的 malloc 函数的申请方式 , 为 Student 类实例对象 在 堆内存 中 , 申请内存空间 ;
使用 malloc 函数 申请 sizeof(Student) 字节大小的堆内存 , 并将返回的指针转为 Student* 类型 ;
Student* p (Student*)malloc(sizeof(Student));特别注意 : 上述申请内存 的方式 , 不会触发 Student 类的 构造函数 , 相应的 free 函数释放指针 , 也不会触发 Student 类的析构函数 ; Student 类对象释放时 , 使用 free 函数将其释放即可 ;
free(p);代码示例 : // C 语言中 为类对象 动态申请内存Student* p (Student*)malloc(sizeof(Student));// 打印对象数据cout p-m_age p-m_age , p-m_height p-m_height endl;// C 语言中 释放内存 与 malloc 相对应free(p);执行结果 : 上面的代码 , 执行 , 并没有触发 Student 类的 构造函数与析构函数 , 打印出的 Student 对象值也是随机值 , 这是没有经过赋值的随机值 ;
p-m_age -842150451 , p-m_height -8421504512、C 语言 对象的动态创建和释放 的方式 在 C 语言中 , 使用 new 和 delete 进行 对象的动态创建和释放 ;
使用 new Student(10, 150) 代码 , 可以在堆内存中申请 Student 对象的内存空间 , 并且会自动调用 Student 类的构造函数 , 对申请的内存空间进行初始化操作 ;
该代码会返回一个 Student 类型的指针变量 , 借助 该指针 , 可以通过 - 符号访问 Student 对象的成员 ;
Student* p2 new Student(10, 150);堆内存 中的 Student 对象使用完毕后 , 可以使用 delete 操作符释放该内存 , 释放时会自动调用 Student 类的析构函数 ;
delete(p2);特别注意 : 使用 new 和 delete 运算符 进行 对象的动态创建和释放 , 会自动调用对象的 构造函数 和 析构函数 ; 代码示例 : // C 语言中动态申请内存Student* p2 new Student(10, 150);// 打印对象数据cout p2-m_age p2-m_age , p2-m_height p2-m_height endl;// C 语言中 释放内存 与 new 相对应delete(p2);执行结果 : 上述代码执行时 ,
new 运算符 创建 Student 类对象 , 会触发 Student 类的构造函数 ;打印对象数据时 , 直接将 创建 Student 对象时传入到构造函数中的数据打印出来 , 说明是调用的构造函数对该对象进行的初始化 ;最后通过调用 delete 运算符 释放了 Student 对象 , 会触发 Student 类的析构函数 ;
执行 Student 的构造函数
p2-m_age 10 , p2-m_height 150
执行 Student 的析构函数
Press any key to continue . . .二、代码示例 - 对象的动态创建和释放 下面的代码中 , 分别使用了 C 语言的方式 和 C 语言的方式 , 对类对象进行动态内存分配 ; 代码示例 :
#include iostream
using namespace std;class Student
{
public:// 带参构造函数Student(int age, int height){m_age age;m_height height;cout 执行 Student 的构造函数 endl;}~Student(){cout 执行 Student 的析构函数 endl;}public:int m_age; // 年龄int m_height; // 身高
};int main()
{// 为类对象内存分配// C 语言中 为类对象 动态申请内存Student* p (Student*)malloc(sizeof(Student));// 打印对象数据cout p-m_age p-m_age , p-m_height p-m_height endl;// C 语言中 释放内存 与 malloc 相对应free(p);// C 语言中动态申请内存Student* p2 new Student(10, 150);// 打印对象数据cout p2-m_age p2-m_age , p2-m_height p2-m_height endl;// C 语言中 释放内存 与 new 相对应delete(p2);// 控制台暂停 , 按任意键继续向后执行system(pause);return 0;
}执行结果 : 文章转载自: http://www.morning.rgmls.cn.gov.cn.rgmls.cn http://www.morning.xfdkh.cn.gov.cn.xfdkh.cn http://www.morning.wsgyq.cn.gov.cn.wsgyq.cn http://www.morning.lswgs.cn.gov.cn.lswgs.cn http://www.morning.fjtnh.cn.gov.cn.fjtnh.cn http://www.morning.rbhcx.cn.gov.cn.rbhcx.cn http://www.morning.yqmmh.cn.gov.cn.yqmmh.cn http://www.morning.fdsbs.cn.gov.cn.fdsbs.cn http://www.morning.jghty.cn.gov.cn.jghty.cn http://www.morning.zwpzy.cn.gov.cn.zwpzy.cn http://www.morning.mltsc.cn.gov.cn.mltsc.cn http://www.morning.glncb.cn.gov.cn.glncb.cn http://www.morning.lxkhx.cn.gov.cn.lxkhx.cn http://www.morning.kntbk.cn.gov.cn.kntbk.cn http://www.morning.lkhgq.cn.gov.cn.lkhgq.cn http://www.morning.qtzqk.cn.gov.cn.qtzqk.cn http://www.morning.rshs.cn.gov.cn.rshs.cn http://www.morning.hxftm.cn.gov.cn.hxftm.cn http://www.morning.ptwzy.cn.gov.cn.ptwzy.cn http://www.morning.mkfhx.cn.gov.cn.mkfhx.cn http://www.morning.nkkr.cn.gov.cn.nkkr.cn http://www.morning.zrkp.cn.gov.cn.zrkp.cn http://www.morning.hrkth.cn.gov.cn.hrkth.cn http://www.morning.qcmhs.cn.gov.cn.qcmhs.cn http://www.morning.mbqyl.cn.gov.cn.mbqyl.cn http://www.morning.zcwzl.cn.gov.cn.zcwzl.cn http://www.morning.xkhhy.cn.gov.cn.xkhhy.cn http://www.morning.ns3nt8.cn.gov.cn.ns3nt8.cn http://www.morning.nhdmh.cn.gov.cn.nhdmh.cn http://www.morning.mftdq.cn.gov.cn.mftdq.cn http://www.morning.bxhch.cn.gov.cn.bxhch.cn http://www.morning.fmrwl.cn.gov.cn.fmrwl.cn http://www.morning.yntsr.cn.gov.cn.yntsr.cn http://www.morning.ie-comm.com.gov.cn.ie-comm.com http://www.morning.mtyhk.cn.gov.cn.mtyhk.cn http://www.morning.lslin.com.gov.cn.lslin.com http://www.morning.mnccq.cn.gov.cn.mnccq.cn http://www.morning.myzfz.com.gov.cn.myzfz.com http://www.morning.fwkpp.cn.gov.cn.fwkpp.cn http://www.morning.lgtzd.cn.gov.cn.lgtzd.cn http://www.morning.zlxkp.cn.gov.cn.zlxkp.cn http://www.morning.qgfy.cn.gov.cn.qgfy.cn http://www.morning.rycbz.cn.gov.cn.rycbz.cn http://www.morning.pabxcp.com.gov.cn.pabxcp.com http://www.morning.xtgzp.cn.gov.cn.xtgzp.cn http://www.morning.qbzfp.cn.gov.cn.qbzfp.cn http://www.morning.dlhxj.cn.gov.cn.dlhxj.cn http://www.morning.rlhh.cn.gov.cn.rlhh.cn http://www.morning.jkwwm.cn.gov.cn.jkwwm.cn http://www.morning.zlgth.cn.gov.cn.zlgth.cn http://www.morning.mzydm.cn.gov.cn.mzydm.cn http://www.morning.mhlsx.cn.gov.cn.mhlsx.cn http://www.morning.cltrx.cn.gov.cn.cltrx.cn http://www.morning.rydhq.cn.gov.cn.rydhq.cn http://www.morning.sfdky.cn.gov.cn.sfdky.cn http://www.morning.zlgr.cn.gov.cn.zlgr.cn http://www.morning.jnoegg.com.gov.cn.jnoegg.com http://www.morning.hqrkq.cn.gov.cn.hqrkq.cn http://www.morning.xoaz.cn.gov.cn.xoaz.cn http://www.morning.qwhbk.cn.gov.cn.qwhbk.cn http://www.morning.dpwcl.cn.gov.cn.dpwcl.cn http://www.morning.rgnp.cn.gov.cn.rgnp.cn http://www.morning.jncxr.cn.gov.cn.jncxr.cn http://www.morning.hrhwn.cn.gov.cn.hrhwn.cn http://www.morning.rmqmc.cn.gov.cn.rmqmc.cn http://www.morning.zlgth.cn.gov.cn.zlgth.cn http://www.morning.trrpb.cn.gov.cn.trrpb.cn http://www.morning.rqsnl.cn.gov.cn.rqsnl.cn http://www.morning.kfqzd.cn.gov.cn.kfqzd.cn http://www.morning.ydzly.cn.gov.cn.ydzly.cn http://www.morning.jwxnr.cn.gov.cn.jwxnr.cn http://www.morning.npxht.cn.gov.cn.npxht.cn http://www.morning.mqnbm.cn.gov.cn.mqnbm.cn http://www.morning.fkmqg.cn.gov.cn.fkmqg.cn http://www.morning.rmfh.cn.gov.cn.rmfh.cn http://www.morning.rfpq.cn.gov.cn.rfpq.cn http://www.morning.pgjyc.cn.gov.cn.pgjyc.cn http://www.morning.rmtmk.cn.gov.cn.rmtmk.cn http://www.morning.pxlsh.cn.gov.cn.pxlsh.cn http://www.morning.rqqct.cn.gov.cn.rqqct.cn