类this指针

源码:`#include
#include <stdlib.h>
using namespace std;

class Fu {
public: string num = “父类成员变量;”;

public: virtual void show() {
	cout<<(this->num);//因为成员变量没有多态,所以this指向当前类对象的成员变量。
	cout<<(this->fun1());//因为方法有多态,所以this指向new对象的方法。
}

public: virtual string  fun1() {
	cout<<(this->num);//因为成员变量没有多态,所以this指向当前类对象的成员变量。
	return "父类调用;";
}

};

class Zi:public Fu {
public: string num = “子类成员变量;”;

public: string fun1() {
	cout<<(this->num);//因为成员变量没有多态,所以this指向当前类对象的成员变量。
	return "子类调用;";
}

};

int main()
{
Fu *f = new Zi();
cout<<(f->num);//这里定义的是父类,而成员变量没有多态,所以即使你new的子类,依然指向父类的成员变量。
cout<<(f->fun1());//不解释了,就是多态。
f->show();
return 0;
}`
运行结果:

父类成员变量;子类成员变量;子类调用;父类成员变量;子类成员变量;子类调用;

结论:
多态:1.类的成员函数的覆盖,new谁就调用谁,这就是多态;
2.类的成员变量的覆盖,指针是哪个类型的,this就是那类型的,没有多态
this是指向当前对象的地址的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值