this指针

来源:互联网 发布:腾讯炒股软件 编辑:程序博客网 时间:2024/05/16 07:45

this指针与指向对象成员运算符“->”对象成员运算符“.”

#include "stdafx.h"
#include <iostream.h>
#include <string.h>

class Person{
public:
 char Name[20];
 char ID[10];
public:
 ////成员函数的定义可以放在类体内,但这样,该成员函数自动成为内联函数。
 ////注意:函数块结束处要加";"号。
 Person(char *_Name,char *_ID)
 {
  strcpy(Name,_Name);
  strcpy(ID,_ID);
 };
 ~Person()
 {
  cout<<"**************call destructor!**************"<<endl;
 };
 void show();
};
////函数形参为Person对象指针
void Display(Person *pObj)
{
 cout<<pObj->ID<<endl<<pObj->Name<<endl;
}
void Person::show()
{
 ////this指针:每一个处于生存期对象都具有的一个指针,用于指向对象本身。
 ////this指针总是作为一个隐含参数传递给类的每一个成员函数(注意:静态成员函数没有this指针)。
 Display(this);
}
int main(int argc, char* argv[])
{
 ////声明一个Person类对象指针p堆空间。
 Person *p=new Person("曾棕根","200320170");
 p->show();
 delete p;
 ////定义一个Person类对象k。
 Person k("苗红义","200320169");
 k.show();
 //////////////////////////////////////////////////
 ////“->”和“.”用法区别
 ////如果从“对象指针变量”引出对象成员,用“->”
 ////如果从“对象变量”引出对象成员,用“.”
 ///////////////////////////////////////////////////
 return 0;
}