C++-this指针-常方法
发布日期:2021-05-04 18:21:59 浏览次数:25 分类:技术文章

本文共 1015 字,大约阅读时间需要 3 分钟。

文章目录

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指针其实就是使用了常方法进行定义的。

上一篇:C++-必须知道的类的6个默认成员函数(构造-析构-拷贝构造-操作符重载)
下一篇:C++-类与对象-计算类对象的方法-类对象的存储方法

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月04日 18时34分35秒