为了账号安全,请及时绑定邮箱和手机立即绑定
  • 对象成员:作为对象来说,成为了另外一个类的数据成员 对象成员指针:对象的指针,做为了另外一个类的数据的成员
    查看全部
  • 注释快捷键:Ctrl+K+C。 取消注释快捷键:Ctrl+K+U。
    查看全部
  • 对象指针的示例 C语言的malloc与C++的new都具有申请新内存空间的作用,但是new会调用对象的构造函数,而malloc不会调用
    查看全部
    0 采集 收起 来源:[C++]对象指针

    2017-12-13

  • 访问限制标号是针对类而不是针对一个类的不同对象,只要同属一个类就可以不用区分同一个类的不同对象。因为Array(const Array &arr) 是类的成员函数,所以有权限访问私有数据成员。如果是在main函数中直接m_iCount,那肯定就会报错了,不能访问,因为这是在类外不能访问私有数据成员。一个类的成员函数可以访问这个类的私有数据成员,我们要理解这个对类的访问限制,而不是针对对象。
    查看全部
  • 浅拷贝和深拷贝的区别在于:如果对象中有初始化指针,那么浅拷贝会将两个不同对象的指针指向一个相同的地址,在释放内存的时候会发生不可预计的错误。而深拷贝则将两个不同对象的指针分别指向不同的地址,不会出现浅拷贝所引发的错误。
    查看全部
  • 遍历对象数组
    查看全部
  • 遍历对象数组
    查看全部
  • 如果坐标类有一个默认构造函数(即不带参数的构造函数),那么可以在实例化线段对象的时候不使用初始化列表。 如果坐标类是有参数的构造函数时,那么在实例化线段对象的时候必须使用初始化列表(要把相应的值传给坐标类) 因为初始化列表会比构造函数先执行,再因为Coordinate是Line的对象成员,会优先于Line执行构造函数,所以如果不把Coordinate的那两个对象放在初始化列表中进行初始化,将会导致Coordinnate的对象使用默认构造函数进行初始化,然后你又没有写默认的构造函数,所以会报错,不过如果你写了默认构造函数,会导致多出来两个对象。
    查看全部
  • line的实现及main函数 #include "Line.h" #include <iostream> using namespace std; Line::Line() { cout <<"Line()" <<endl; } Line::~Line() { cout <<"~Line" <<endl; } void Line::setA(int x,int y) { m_coorA.setX(x); m_coorA.setY(y); } void Line::setB(int x,int y) { m_coorB.setX(x); m_coorB.setY(y); } void Line::printInfo() { cout << "(" << m_coorA.getX() <<"," << m_coorA.getY() <<")"<<endl; cout << "(" << m_coorB.getX() <<"," << m_coorB.getY() <<")"<<endl; } #include <iostream> #include <stdlib.h> #include "Line.h" using namespace std; int main(void) { Line *p = new Line(); delete p; p = NULL; system("pause"); return 0; }
    查看全部
  • Coordinate的申明和实现 class Coordinate { public: Coordinate(); ~Coordinate(); void setX(int x); int getX(); void setY(int y); int getY(); private: int m_iX; int m_iY; }; #include "Coordinate.h" #include <iostream> using namespace std; Coordinate::Coordinate() { cout <<"Coordinate()" <<endl; } Coordinate::~Coordinate() { cout <<"~Coordinate()" <<endl; } void Coordinate::setX(int x) { m_iX = x; } int Coordinate::getX() { return m_iX; } void Coordinate::setY(int y) { m_iY = y; } int Coordinate::getY() { return m_iY; } #include "Coordinate.h" class Line { public: Line(); ~Line(); void setA(int x,int y); void setB(int x,int y); void printInfo(); private: Coordinate m_coorA; Coordinate m_coorB; };
    查看全部
  • Line的申明,注意 他的private数据成员是Coordinate类的对象成员
    查看全部
  • Coordinate申明
    查看全部
  • 当类coor的对象作为类line的成员时,实例化line时,先实例化coor,再实例化line, 删除line时,先删除line,再删除coor 想用line的参数来初始化coor时,必须使用初始化列表
    查看全部
    0 采集 收起 来源:[C++]对象成员

    2017-12-12

  • 当类coor的对象作为类line的成员时,实例化line时,先实例化coor,再实例化line, 删除line时,先删除line,再删除coor 想用line的参数来初始化coor时,必须使用初始化列表
    查看全部
    0 采集 收起 来源:[C++]对象成员

    2017-12-12

  • 1.const数据成员:跟const常量一样,只是一个在类里(而且是在构造函数里),一个在类外而已,都必须初始化。 2.const成员函数:即普通成员函数后再加const。它可以读取数据成员的值,但不能修改它们。若要修改 时,数据成员前必须加mutable。以指定其可被任意更改。mutable是ansi c++考虑到实际编程时,可能一定要修改const对象中的某个数据成员而设的。const成员函数可以被相同参数表的非const成员函数重载。 3.普通对象:可以调用任意成员函数。见下面的例子 4.const对象:仅能调用const成员函数,但是构造函数和析构函数是唯一不是const成员函数却可以被const对象调用的成员函数。 5.重点理解: const Coordinate *p = &coor const Coordinate &c = coor #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; //错误写法&coor(3,5) // 创建常引用c const Coordinate &c = coor; //错误写法coor(3,5) coor.printInfo(); p->printInfo(); c.printInfo(); return 0; }
    查看全部
    0 采集 收起 来源:单元巩固

    2018-03-22

举报

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

微信扫码,参与3人拼团

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

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