类与*this

来源:互联网 发布:趣味java 编辑:程序博客网 时间:2024/05/28 15:34

1.this是用于标识一个对象自引用的隐式指针,编译器在编译一个类时,会自动的将this指针参数添加在它的成员函数的参数表中。

2.当某个对象调用成员函数时,c++会把该对象的地址作为传递给this指针的实参。

3.可以显性使用this指针。

4.静态成员函数没有this指针。

返回对象的指针和引用的成员函数:

#include<iostream>using namespace std;class   Tdate{private:    int yy,mm,dd;public:    Tdate(int y=2006,int m=01,int d=01):yy(y),mm(m),dd(d){}    Tdate &setYear(int year);    Tdate &setMonth(int month);    Tdate &setDay(int day);    Tdate setDate(int y,int m,int d);    void display();};Tdate& Tdate::setMonth(int month){mm=month;return *this;}Tdate& Tdate::setYear(int year){yy=year;return *this;}Tdate& Tdate::setDay(int day){dd=day;return *this;}Tdate  Tdate::setDate(int y,int m,int d){yy=y;mm=m;dd=d;return *this;}void Tdate::display(){cout<<"address is: "<<this<<"\t"<<yy<<":"<<mm<<":"<<dd<<endl;}int main(){    Tdate d1,d2;    cout<<"d1 :";d1.display();    cout<<"d2 :";d2.display();    d1.setYear(2007).setMonth(03).setDay(30);    cout<<"d1 :";d1.display();    d1.setDate(2000,01,11).setDay(30);    cout<<"D1 :";d1.display();    Tdate *p;    p=&d1.setDay(21);    cout<<" p ";    p->display();    Tdate d3=d2.setYear(2006).setMonth(4);    cout<<"d3 :";d3.display();    d1.setYear(2007).setMonth(03)=d3;    cout<<"d1 :";d1.display();
return 0;}


0 0