为了账号安全,请及时绑定邮箱和手机立即绑定
  • 如果常成员函数有重载函数,那么普通的调用会调用普通函数,要想调用常函数就只能在实例化对象时,实例成常对象,不过最好不要定义一个有重载函数的常成员函数
    查看全部
  • 常成员函数和同名且参数的相同的普通成员函数互为重载
    查看全部
  • 常成员函数的实质
    查看全部
  • 一旦实现就不能修改就定义成常成员
    查看全部
  • 对象指针本身会在line这个内存中,而它所指向的对象成员是在堆中的。
    查看全部
  • 使用new会自动调用相关对象的构造函数,而mollac不会,只是分配内存
    查看全部
    0 采集 收起 来源:[C++]对象指针

    2016-04-19

  • P指向对象的第一个元素
    查看全部
    0 采集 收起 来源:[C++]对象指针

    2016-04-19

  • 对象数组 示例
    查看全部
    0 采集 收起 来源:[C++]对象数组

    2016-04-19

  • 当成员数据为对象成员时,构造函数无参数
    查看全部
    0 采集 收起 来源:[C++]对象成员

    2016-04-19

  • 拷贝方法
    查看全部
  • 对象作为数据成员时,构造函数没有参数
    查看全部
    0 采集 收起 来源:[C++]对象成员

    2016-04-18

  • 关于视频中的疑问 <br> 1.Array Array::printInfo() //返回值为对象 return *this //this为指针,*this为对象 <br> (1.)为什么主函数中还能访问printInfo()函数?// arr1.printInfo(); (2.)arr1.printInfo().setlen(5)是否是调用同一对象的两个成员函数? //应该怎样理解? <br> 2.Array& Array::printInfo() //取得是对象Array对象中的函数printInfo()的地址吗?应该怎样理解?<br> <br> 1、Array arr1 当实例化一个arr1的时候,因为有Array Array::printInfo()存在,系统会创建一个Array类的隐形变量,我们姑且用arr2来表示隐形变量,这时arr1和arr2指向的是不同的地址,有点类似于windows的复制操作。 系统执行arr1.printInfo( return * this)的时候,其实相当于arr1.printInfo( &arr2=*this; return arr2; ),所以arr1.printInfo().setlen(5)就是arr2.setlen(5).因为arr1和arr2指向两个不同的地址,所以是两个对象,所以 arr1.printInfo().setlen(5)是arr2的成员函数。 <br> <br> 2、Array arr1 当实例化一个arr1的时候,因为有Array& Array::printInfo()存在 ,系统这时候还会创建一个arr2出来,但是因为有&也就是引用,所以arr2和arr1指向的是同一个地址,这就有点类似于windows的快捷方式。系统执行arr1.printInfo( return * this)的时候其实返回的还是arr2,只是arr2和arr1指向同样的地址,所以arr1.printInfo().setlen(5)相当于arr2.setlen(5)也相当于arr1.setlen(5)。
    查看全部
  • #include <iostream> #include "Line.h" #include <stdlib.h> using namespace std; int main() { Line *p = new Line (1,2,3,4); p->printInfo(); delete p; p = NULL; cout <<sizeof(p) <<endl; cout <<sizeof(Line) <<endl; system("pause"); }
    查看全部
  • #include <iostream> #include "Coordinate.h" using namespace std; Coordinate::Coordinate(int x, int y) { m_iX = x; m_iY = y; cout <<"Coordinate()" <<m_iX <<"," <<m_iY <<endl; } Coordinate::~Coordinate() { cout <<"~Coordinate" <<endl; } int Coordinate::getX() { return m_iX; } int Coordinate::getY() { return m_iY; } #include "Line.h" #include <iostream> using namespace std; Line::Line(int x1, int y1, int x2, int y2) { m_pCoorA = new Coordinate(x1,y1); m_pCoorB = new Coordinate(x2,y2); cout << "Line()" <<endl; } Line::~Line() { delete m_pCoorA; m_pCoorA = NULL; delete m_pCoorB; m_pCoorB = NULL; cout <<"~Line()" <<endl; } void Line::printInfo() { cout <<"printInfo()" <<endl; cout <<"(" <<m_pCoorA->getX() <<"," <<m_pCoorA->getY() <<")" <<endl; cout <<"(" <<m_pCoorB->getX() <<"," <<m_pCoorB->getY() <<")" <<endl; }
    查看全部
  • class Coordinate { public: Coordinate(int x, int y); ~Coordinate(); int getX(); int getY(); private: int m_iX; int m_iY; }; #include <iostream> #include "Coordinate.h" using namespace std; Coordinate::Coordinate(int x, int y) { m_iX = x; m_iY = y; cout <<"Coordinate()" <<m_iX <<"," <<m_iY <<endl; } Coordinate::~Coordinate() { cout <<"~Coordinate" <<endl; } int Coordinate::getX() { return m_iX; } int Coordinate::getY() { return m_iY; }
    查看全部

举报

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

微信扫码,参与3人拼团

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

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