为了账号安全,请及时绑定邮箱和手机立即绑定
  • 一个对象可以有多个对象常引用。
    查看全部
    0 采集 收起 来源:单元巩固

    2016-10-08

  • 在这里,指针pCoor所指向的对象并非常对象。
    查看全部
  • 对象的常指针与常引用
    查看全部
  • 对象的引用以及对象的指针:
    查看全部
  • const对象的数据成员在对象生存期内不能改变。但是,如何保证该类的数据成员不被改变呢?为了确保const对象的数据成员不会被改变,在C++中,const对象只能调用const成员函数。如果一个成员函数实际上没有对数据成员作任何形式的修改,但是它没有被const关键字限定的,也不能被常量对象调用。
    查看全部
  • 我们定义的类的成员函数中,常常有一些成员函数不改变类的数据成员,也就是说,这些函数是"只读"函数,而有一些函数要修改类数据成员的值。如果把不改变数据成员的函数都加上const关键字进行标识,显然,可提高程序的可读性。其实,它还能提高程序的可靠性,已定义成const的成员函数,一旦企图修改数据成员的值,则编译器按错误处理。
    查看全部
  • 常成员函数不能更新对象的数据成员; 当一个对象被声明成一个常对象后,则该对象不能调用该类的非常成员函数;
    查看全部
  • 常成员函数的定义可以理解为:
    查看全部
  • 常成员函数的定义
    查看全部
  • 常成员函数
    查看全部
  • 常对象成员,即数据成员是对象,且用const修饰
    查看全部
  • (1)常对象只能调用常成员函数,或是公用的常数据成员,不能调用普通成员函数 (2)私有的常数据成员,初始化要用成员初始化列表 (3)常成员函数,本质就是把this指针指向的变量变为常量,所以形如这样:this->a = 10;是错误的,因为this指向的量a是一个常量,不可以更改值。所以在常成员函数体中是不可以更改this指针指向的数据成员的值的 (4)常成员函数中也不能调用普通成员函数,但是可以访问到私有的数据成员
    查看全部
  • 用const修饰对象成员,对象成员就变成了常对象成员 用const修饰成员函数,成员函数就变成了常成员函数。const要放在函数的最后, 一旦初始化就不能再修改,const就是干这个的,长对象成员用初始化列表初始化 函数里看着没有参数,实际上隐藏着this指针。常成员函数中隐藏的是常this指针,常指针指向的数据不允许被修改 例如:void Coordinate::changeX(){m_iX = 10;}即为void Coordinate::changeX(Coordinate *this){this->m_iX = 10;} void Coordinate::changeX()const{m_iX = 10;}即为void Coordinate::changeX(const Coordinate *this){this->m_iX = 10;}这里的m_iX = 10;的写法是错误的,this已经是常指针,通过常指针是无法修改值的 void changeX();与void changeX() const互为重载 要调用const修饰的常成员函数,实例化对象时,必须用const来修饰对象,const写在最前面
    查看全部
  • 1、this指针无需用户定义,是编译器自动产生的。 2、同一个类的两个对象的this指针指向不同位置的内存:对象各自的this指针指向各自对象的首地址,所以不同对象的this指针一定指向不同的内存地址 3、当成员函数的参数或临时变量与数据成员同名时,可以使用this指针区分同名的数据成员。 4、this指针也是指针类型,所以在32位编译器下也占用4个基本的内存单元,即sizeof(this)的结果为4
    查看全部
    0 采集 收起 来源:练习题

    2016-10-06

  • Array printInfo();要求返回值类型是一个对象,而Array Array::printInfo(){return *this}的返回值就是一个对象。 this指针系统会自己加 Array Array::printInfo(){return *this;}返回出去之后的*this指针是一个临时的对象,并不是arr1 Array& Array::printInfo(){return *this;}这样返回出去的就是arr1了。 在类中也要这样定义,加入引用之后,一切都清晰起来了 使用点号可以将多个方法穿起来使用 声明和定义函数用的是&,即为引用,返回值要加*,即为return *this; 调用函数是用点号. 声明和定义函数用的是*,即为指针,返回值不用加* ,即为return this;调用函数是用-> class Array { public: Array(int len); ~Array(); Array* setLen(int len);//注意 int getLen(); Array& printInfo();//注意 private: int len; }; Array* Array::setLen(int len) { this->len = len; return this; } Array& Array::printInfo() { cout<<"len = "<<len<<endl; return *this; } int main(void) { Array arr1(10); arr1.printInfo().setLen(5)->printInfo();//这里都是针对arr1的操作 system("pause"); return 0; } 1.可用this指针做返回 2.*this对象做返回与引用Array &配合 都可对原对象做操作
    查看全部

举报

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

微信扫码,参与3人拼团

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

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