为了账号安全,请及时绑定邮箱和手机立即绑定
  • 【浅拷贝】是增加了一个指针,指向原来已经存在的内存。而【深拷贝】是增加了一个指针,并新开辟了一块空间,让指针指向这块新开辟的空间。

    【浅拷贝】在多个对象指向一块空间的时候,释放一个空间会导致其他对象所使用的空间也被释放了,再次释放便会出现错误


    查看全部
  • this指向的就是它所在对象的地址
    查看全部
    0 采集 收起 来源:练习题

    2019-02-15

  • ctl+K+c注释代码

    查看全部
  • 在调用拷贝构造时,报错为“error: passing ‘const Element<int>’ as ‘this’ argument of ‘const std::vector<T, std::allocator<_Tp1> >& Element<T>::getDim() [with T = int]’ discards qualifiers”
    2. 解决方案
    因为this指针是不可改变的,为了确保其不变性,将getDim函数也定义为const的,即“int getDim() const { return this->dim; }”
    ---------------------
    作者:lxf310
    来源:CSDN
    原文:https://blog.csdn.net/lxf310/article/details/9289163
    版权声明:本文为博主原创文章,转载请附上博文链接!

    查看全部
  •  // 创建常指针p
     const Coordinate *p = &coor;
     // 创建常引用c
     const Coordinate &c = coor;

    查看全部
    1 采集 收起 来源:单元巩固

    2019-02-07

  • 非常对象可以调用常成员函数

    常对象不能调用非常成员函数

    使用初始化列表初始化常成员



    查看全部
    • 类的实例化对象声明为普通对象时,既能调用类的普通成员函数也能调用类的常成员函数,当一个成员函数具有普通和const两个重载版本时,此时普通对象调用的是其普通版本。

    • 类的实例化对象声明为常对象时,只能调用类的常成员函数。

    查看全部
  • 1.常成员函数中const是用来修饰this指针的。

    查看全部
  • #include <iostream>
    using namespace std;
    class Coordinate
    {
       
    public:
     Coordinate(int x, int y)
     {
      // 设置X,Y的坐标
      m_iX = x;
            m_iY = y;
     }
    public:
     int m_iX;
     int m_iY;
    };

    int main(void)
    {
        // 在堆上创建对象指针
     Coordinate *p = new Coordinate(3,5);
        // 打印坐标
     cout << (*p).m_iX << (*p).m_iY << endl;
        // 销毁对象指针
     delete p;
        p = NULL;
     return 0;
    }


    查看全部
    1 采集 收起 来源:编程练习

    2019-02-01

  • 1.类的声明和定义最好分别放在该类的(.h)和(.cpp)文件中。

    查看全部
  • const修饰的成员变量必须用初始化列表来进行初始化

    const 能修饰成员函数,称为常成员函数,必须是常对象才能调用常成员函数。

    常成员函数与普通成员函数互为重载,常成员函数只能由常对象调用,普通成员函数由普通对象调用

    查看全部
  • 使用对象成员指针能节约栈中的位置,将成员变量的值储存在堆中

    查看全部
  • 拷贝的时候参数表里头要加&是为了防止无限递归,具体是啥好像是构造函数重复调用,emmmmm,创建这个类的时候又会调用一次。加上&地址相同,不会再次引用。对。

    查看全部
  • #include"iostream"
    using namespace std;
    int main() {
    class Coordinate {
    public:
    int m_ix;
    int m_iy;
    }coord[3] = { 3,5,2,6,3,7 };
    Coordinate *p = new Coordinate[3];
    //p0
    p[0].m_ix = 20;
    p->m_iy = 20;
    p++;
    //p1
    p->m_ix = 6;
    p[0].m_iy = 7;
    //p2
    p[1].m_iy = 9;
    p++;
    p->m_ix = 8;
    //遍历输出
    for (int i = 0; i < 3; i++) {
    cout << "coord_x :" << "\t" << coord[i].m_ix << endl;
    cout << "coord_y :" << "\t" << coord[i].m_iy << endl;
    }
    for (int i = 0; i < 3; i++) {
    cout << "p_x:" << "\t" << p->m_ix << endl;
    cout << "p_y:" << "\t" << p->m_iy << endl;
    p--;
    }
    delete[]p;
    p = NULL;
    return 0;
    }


    查看全部
  • 浅拷贝:

    将对象内容简单拷贝,指针成员指向同一地址

    深拷贝:

    在堆中开辟一块新的地址,将原地址中的内容拷贝进去

    查看全部

举报

0/150
提交
取消
课程须知
本课程是C++初级课程 需要掌握C++语言基础语法 如果不太熟悉的话,可以观看: 《C++远征之起航篇》 《C++远征之离港篇》 《C++远征之封装篇(上)》
老师告诉你能学到什么?
1、对象数组的定义和使用 2、对象成员的定义和使用 3、深拷贝和浅拷贝 4、对象指针、对象引用的定义和使用 5、常对象指针、常对象引用、常成员函数的定义和使用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!