网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

C++之new和delete-创新互联

【new和delete】

C++在实例化对象的时候,系统会发生两件事情:

创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站建设、成都网站制作、简阳网络推广、小程序制作、简阳网络营销、简阳企业策划、简阳品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;创新互联为所有大学生创业者提供简阳建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com

1.自动为对象分配内存

2.自动调用构造函数来初始化那块内存。

3.malloc不能为内存初始化,所以我们在C++中使用new和delete

1、和 malloc calloc realloc 比较

1、malloc必须返回一个指针,返回值还是void类型,c++不允许将void赋值给其他任何指针,必须强转。

2、malloc 可能申请失败,必须判断返回值来确定是否申请成功。

3、malloc 不会调用构造函数,free不会调用析构函数。

2、给基本类型申请、释放空间
int *p ;
p = new int (100)  // *p = 100;
delete p;

3、给基本数组类型申请、释放空间
int * arr = new int[100]{1,2,.......,100};//100个整型元素
char *arr = new char[100] ; // 100个字符类型元素 
delete []arr ; //new 的时候有[],释放的时候就要有[];
char *arr  = new char[32]{"hehe"} // err ;
只能一个一个写进去  或者不初始化然后使用strcpy拷进去
char *arr = new char[32]{'h','e','h','e'};



char *arr = new char ;
strcpy(arr,"hello,wrold");
    for(int i =0;i

4)给类对象申请空间
#includeusing namespace  std;

class person{

private:  char m_name[32];
        int m_age;
public: person(char *name ,int age)
        {

            strcpy(m_name,name);
            m_age = age;
            cout<<"构造函数"<showperson();
    delete ob1;

}

运行结果:

分析:使用new的时候会自动调用构造函数,使用delete的时候会自动调用析构函数。

5)对象数组
void test03()
{
    person *arr  = new person[2]{person("lucy",12),person("bob",13)};
    //指针访问
    arr->showperson();
    (arr+1)->showperson();
    //数组下标访问
    arr[0].showperson();
    arr[1].showperson();
    //数组下标等同于指针偏移量
    (*(arr)).showperson();
    (*(arr+1)).showperson();
    delete []  arr;

}

运行结果:

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前标题:C++之new和delete-创新互联
文章URL:http://bjjierui.cn/article/deijch.html