成员函数及this指针的意义

同样受访问修改符的限制,被public修饰的可以被外部访问,被private修饰的则不能被外部访问

class Object
{
	public:
		int x;
		int y;
		void Test()
		{
			printf("hello,world!\n");
		}	
	private:
		void Test2()
		{
			printf("I am a private function!\n");
		}
};

引例:要在Test()函数中,将x,y打印出来?怎么做?

class Object
{
	public :
		int x;
		int y;
		void Test()
		{
		//打印x,y
		}
};
Object obj;
obj.Test();//已经定义了一个obj对象,如果在Test函数里把x,y打印出来?

方法一:调用函数的时候传递一个指针
方法二:使用this指针

class Object
{
	int x;
	int y;
	void Test()
	{
		printf("x=%d,y=%d\n",this->x,this->y);
	}
};
obj.Test();
//当Test被调用时,已经把对象obj的指针传给它了。
//编译器内部就是这么实现的,没必要在画蛇添足地传一个指针给它

使用this指针,可以直接访问本类的其他成员(变量,函数),不受public/private的限制

class Object
{
	private:
		int x;
		int y;
	public:
		int Add()
		{
			return this->x+this->y;//用this->调用其他成员
		}
		void Test()
		{
			printf("Sum:%d\n",this->Add());//用this调用其他成员
		}
}

观察:this是否就是对象obj的地址

  1. 成员函数:定义在class内的函数
  2. 成员函数的调用:也是仍然点号或箭头,也受public/private的限制
  3. 使用隐含的this指针,来访问本对象的成员,this指针指向了对象自己
    注:this指针是在形式上做了一个简化,使得用户少传一个对象的指针作为参数

深圳程序员交流群550846167

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ToF君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值