【C++】--类与对象(1)-3 this指针

  • 在Date类中有 Init 和 print两个成员函数,函数体中没有关于不同函数的区分但是我们在对d1 和d2两个对象进行初始化的时候是如何进行区分的呢?解决问题的方法就是在C++中提供了this指针。
  • 编译器编译后,都会默认在类的成员函数的形参前面添加一个当前类类型的this指针,比如Date类中的Init成员函数的原型是:void Init(Date const this, int year, int month, int day)*
  • 类中的成员函数访问成员变量本质上都是通过this指针进行访问的比如在Init中给year赋值本质上是:this->_year = year
  • C++规定不能在实参和形参的位置上显示写this指针但是可以在函数体内显示使用this指针
class Date
{
public:
	// void Init (const Date* this, size_t year, size_t month, size_t day)
	void Init(size_t year = 2024, size_t month = 10, size_t day = 5)
	{
		this->_year = year;
		this->_month = month;
		this->_day = day;
	}
	void print()
	{
		cout << _year << "-" << _month << "-" << _day << endl;
	}

private:
	//只有声明,并没有分配空间
	size_t _year;
	size_t _month;
	size_t _day;
};
上一篇:3.JVM


下一篇:【洛谷】P2330 [SCOI2005] 繁忙的都市 的题解