美文网首页
C++类的对象创建过程,小探索。

C++类的对象创建过程,小探索。

作者: xiaoliang1 | 来源:发表于2020-06-20 02:55 被阅读0次

学习心得

class MyArray
{
public:
    explicit MyArray(int m_Capacity = 100);
    explicit MyArray(const MyArray &array1);
    ~MyArray();

private:
    int m_Capacity;
    int m_Size;
    int* p_Address;

};

MyArray::MyArray(int  m_Capacity):m_Capacity(m_Capacity){

    //this->m_Capacity = m_Capacity;
    this->m_Size = 0;
    this->p_Address = new int[this->m_Capacity];

    printf("%s\n", __FUNCSIG__);
}

MyArray::MyArray(const  MyArray& array1) {

    //MyArray* tmp = new MyArray;
    this->m_Size = array1.m_Size;
    this->m_Capacity = array1.m_Capacity;
    this->p_Address = new int[array1.m_Capacity];
    memcpy(this->p_Address,array1.p_Address,array1.m_Capacity*sizeof(int));


}




MyArray::~MyArray()
{
    if (this->p_Address)
    {
        delete[] this->p_Address;
    }

    this->m_Capacity = 100;
    this->m_Size = 0;

    printf("%s\n", __FUNCSIG__);
}

void test() {
    //MyArray p;  // 先MyArray::__autoclassinit2分配内存,直接调用  MyArray()默认构造
    MyArray p1(100); // 先MyArray::__autoclassinit2分配内存,在调用MyArray(int m_Capacity = 100)有参构造函数,

    MyArray p2(p1);// 先MyArray::__autoclassinit2分配内存,在调用MyArray::MyArray(const  MyArray& array1) copy构造

    printf("p1 :%x\n", &p1);
    printf("p2 :%x\n", &p2);


}

所有类的都会自动生成xxxxx::__autoclassinit2,默认由__autoclassinit2去分配内存,在看情况调用自定义的构造函数。
上述缺少new,new出来的对象也一样;
笔记笔记!

相关文章

  • C++类的对象创建过程,小探索。

    学习心得 所有类的都会自动生成xxxxx::__autoclassinit2,默认由__autoclassinit...

  • 2018-03-22

    Boolan C++设计模式二 “对象创建”模式:通过“对象创建”模式绕开new,来避免对象创建(new)过程中所...

  • 类结构分析

    类结构分析 回顾 前面我们讲了alloc 流程中对象的创建过程,下面我们来探索一下类的结构,废话不多说,开始~ 类...

  • C++类与对象小结

    类与对象 类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量;创建对象的过程也叫类的实例化。...

  • C++ 中的new 和 java中的 new

    C++:创建实例 new创建的类对象需要指针来接收,该类对象使用完毕后需要使用delete销毁 new创建的对象使...

  • 创建类模式总结篇

    创建类模式总结篇 创建类模式主要关注对象的创建过程,将对象的创建过程进行封装,使客户端可以直接得到对象,而不用去关...

  • C++ 面向对象 一

    C++ 面向对象 c++创建对象的时候如果使用new运算符,将会返回返回一个指针,指向堆中的内存地址 类,对象类定...

  • 1.2.05_C++ 拷贝构造函数

    C++ 类 & 对象 拷贝构造函数是一种特殊的构造函数,它在创建对象时,是使用同一类中之前创建的对象来初始化新创建...

  • C++基础2020-11-10

    C++ 拷贝构造函数 在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象 如果在类中没有定义拷贝构造...

  • 解读《小类、大对象》

    sweet tip: 本文的一些背景知识来源于袁英杰的《小类,大对象:C++》,建议先阅读《小类,大对象:C++》...

网友评论

      本文标题:C++类的对象创建过程,小探索。

      本文链接:https://www.haomeiwen.com/subject/ppwixktx.html