C++-this指针-常方法

1. this指针

1.1 this指针特性

  1. this指针的类型:类类型* const
  2. 只能在“成员函数”的内部使用
  3. this指针本质上其实是一个成员函数的形参,是对象调用成员函数,将对象的地址作为实参传递给this形参,所以对象中不存储this指针
  4. this指针是成员函数第一个隐含的指针形参,一般情况由编译器通过ecx寄存器自动传递的,不需要用户传递
  5. this->m_data = data或者写成(*this).m_data都是可以的
  6. this指针代表了当前对象的地址,一般情况下可以不用写this
  7. this指针存放在栈区,this指针不会为空

1.2 用法

class Test
{
public:
	void setName(char* name)
	{
		strcpy(this->name,name);
		//this->name = name;
	}
	void setAge(short age)
	{
		this->age = age;
	}
	char* showName()
	{
		return this->name;
	}
	short showAge()
	{
		return age;
	}
//protected:
private:
	char name[20];
	short age;
};

int main()
{
	Test t;
	t.setAge(20);
	t.setName("lixin");
	char* arr;
	arr = t.showName();
	cout << t.showAge() << endl;
	cout << arr << endl;
	return 0;
}

1.3 面试题

1.this指针存在哪里?

void SetDate (Test* const this, int data)

  在计算机中实际的成员函数是这样的,但是this这个指针的这个参数是隐藏的,不需要编程人员去写,也只是通过this指针才能识别不同对象调用相同的方法
2.this指针可以为空吗?
  不可以,因为只有在类的成员函数中才存在this指针,而成员函数能调用肯定this指针也就不为空。

2. 常方法

2.1 写法

void setName(const char* name)

  在常方法中,是不能修改值的,因此如果函数是不需要修改变量的值的情况下,最好加const。this指针其实就是使用了常方法进行定义的。

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

天津 唐秙

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

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

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

打赏作者

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

抵扣说明:

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

余额充值