C++编程(8)

Educn 1033 date bool operatordate a date b return

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 用 const成员函数,而非const成员函数 则只能由非const对象调用 Beijing University of Posts & Telecommunications Beijing young@buptnet.edu.cn 10.2.7 自引用 状态更新函数:add_year(), add_month(), add_day()被定义为不返回值的函数对于这样一组 相关的更新函数,可以让他们返回一个到被更新的 引用,以使对于对象的操作可以串接起来 Date& Date::add_year(int n) class Date{ { // … if(d==29 && m==2 && Date& add_year(int n); !leapyear(y+n)){ Date& add_month(int n); d = 1; Date& add_day(int n); m = 3; }; } //d.add_year(1).add_month(1). y+=n; add_day(1) return *this; // 可以如上述方式使用 } Beijing University of Posts & Telecommunications Beijing young@buptnet.edu.cn 关于this 在一个非静态的成员函数里,关键字this是一个指 针,指向该函数的当时这次调用所针对的那个对象 在类X的非const成员函数里,this的类型就是 X*,但是,不能取得this的地址或者给它赋值 在类X的const成员函数里,this的类型是const X*,以防止对这个对象本身的修改 大部分对于this的应用都是隐含的,特别的,对于 一个类中的非静态成员的引用都要依靠隐式地使用 this,以获取相应对象的成员 Beijing University of Posts & Telecommunications Beijing young@buptnet.edu.cn this示例 Date& Date::add_year(int n) { if(this->d==29 && this->m==2 && !leapyear(this->y+n)){ this->d = 1; this->m = 3; } this->y+=this->n; return *this; } // 使用this的例子 Date::Date(int y, int m, int d) { this->y = y; this->m = m; this->d = d; } // 另外一种不得不使用this的例子 Beijing University of Posts & Telecommunications Beijing young@buptnet.edu.cn 10.2.7.1 物理的和逻辑的常量性 偶尔有这种情形,一个成员函数在逻辑上是 const,但它却仍然需要改变某个成员的值, 对于用户而言,这个函数...
View Full Document

This note was uploaded on 02/10/2014 for the course ECE C++ taught by Professor Xiaoshengtang during the Fall '13 term at BUPT.

Ask a homework question - tutors are online