为了账号安全,请及时绑定邮箱和手机立即绑定
  •  执行第一个p++后,P的位置已经发生了改变,所以第二个p[0]就相当于指向堆中的第二个位置,继而p[1]==p[2];

    查看全部
  • 当执行第二个循环后,p没有指向开始时申请内存的位置了,所以要用一个p++重新将p地址指向申请内存的第一位。

    查看全部
  • 对象成员:一个对象作为另外一个类的数据成员

    对象成员指针:一个对象的指针作为另外一个类的数据成员

    1.对象成员指针的定义: 类名 * 指针名 是指针而不是对象

    2.若存在对象成员指针1,2……。sizeof(指针1,指针2……)只计算各指针所

    占内存的总和,不计算对象成员所占内存

    对象成员指针如果在构造函数用 new 的方式从堆中申请内存实例化2个

    Coordinate 对象,那这2个对象都是在堆中,而不在 Line 对象中,因为每个指

    针占 4 个内存单元,因此 sizeof(Line) 只占 8 个内存单元,销毁 Line 的时

    候,先销毁队中的内存,在释放 Line 本身的内存


    查看全部
  • Coordinate * const pCoor = &coor1 : 这种方式定义的常指针“只能指向coor1,但可以调用coor1的不同的函数”;(拥有读写权限) const Coordinate *pCoor = &coor1  : 只能调用coor1的“常成员函数”。(只拥有读权限)

    查看全部
  • 为什么要用Array&

    https://www.imooc.com/qadetail/100956

    查看全部
  • mollac只分配空间,new还会调用构造函数。

    查看全部
    0 采集 收起 来源:[C++]对象指针

    2018-06-06

  • 对象指针格式

    查看全部
    0 采集 收起 来源:[C++]对象指针

    2018-06-05

  • 需要记录这个点

    查看全部
  • 实例化点--实例化线,销毁线--销毁点

    查看全部
    0 采集 收起 来源:[C++]对象成员

    2018-05-31

    1. p[0]指向第一个元素;执行p++之后p[0]指向第2个了!!!<br>
      2.释放内存时要注意指针 p 指回原来的位置。用delete释放数组内存时要注意此时的指针*p要指到该数组的第一个元素上。保证申请和释放的是同一段内存

    2. 第二个循环第一次打印的是第三个元素因为指针经过p++到第三个元素了,所以得用p--

    注意:在对象数组中,想要访问某个堆中的对象的成员属性时,p->m_ix=1;和p[0].m_ix=1效果是一样的,但是p[0]->m_ix=1这种用法是错误、以及注意 p++后 p[0] 前后的指向是不一样的

    数组的头指针最好要保留,采用(p+1)->m_iX的方式访问,不会更改头指针

    查看全部
  • 定义一个坐标类,在栈上实例化坐标类常对象,并给出坐标(3,5),然后定义常引用、常指针,最后使用对象、引用、指针分别通过调用信息打印函数打印坐标信息。

    打印结果如图

    #include <iostream>
    using namespace std;
    class Coordinate
    {
       
    public:
     Coordinate(int x, int y)
     {
      // 设置X,Y的坐标
      m_iX = x;
            m_iY = y;
     }
        // 实现常成员函数
     void printInfo() const
     {
         cout << "(" << m_iX << "," << m_iY << ")" <<endl;
     }
    public:
     int m_iX;
     int m_iY;
    };



    int main(void)
    {
     const Coordinate coor(3, 5);


     // 创建常指针p
     const Coordinate *p = &coor;
        // 创建常引用c
        const Coordinate &c = coor;
     
     coor.printInfo();
     p->printInfo();
     c.printInfo(); 
     
     return 0;
    }


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

    2018-05-26

  • const [类型] * p类型常指针和常引用不能调用普通成员函数,只能调用常成员函数。

    [类型] * const p 可以调用普通成员函数,但不能再次更改指向的变量。

    查看全部
  • 常对象只能调用常成员函数。

    普通对象既可以调用普通成员函数,也可以调用常成员函数。

    常成员函数不能改变成员的值(因为不传入this指针)

    查看全部
  • 指针常量     int * const p

    常指针         int const * p

    指针常量和常引用都可以看作常对象

    查看全部
    0 采集 收起 来源:练习题

    2018-05-24

  • 6:05处,常指针pcoor为何能指向普通成员函数getY(),不是说“常指针和常引用只能指向常成员函数”吗?

    常指针与普通指针的区别在于隐含的this指针可读可写行,常指针中this指针只能读不能写,而普通的成员函数是即可读又可写的,因此常指针可以调用普通的成员函数。


    最后一句:pCoor->printInof(); pCoor已经是常指针了呀,为什么还说它是读写权限呢,不应该是只读权限吗?

    该指针定义的是 Coordinate * const pCoor = &coor1; 指针pCoor是常指针,只是它只能指向coor1,不能指向其他的对象,但是它的权限还是读写权限

    查看全部

举报

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

微信扫码,参与3人拼团

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

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