当前位置:   article > 正文

【C++】类与对象(取地址操作符)_c++类的对象取址

c++类的对象取址
[本节内容]

1.const 成员
2.取地址及const取地址操作符重载

之前在下面博客中讲到类的六个默认成员函数:类与对象
本期我们聊聊类的取地址操作符 - &

1.1 const修饰类的成员函数

将const修饰的类成员函数称之为const成员函数,实际const修饰的是该成员函数隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改

class Date
{
public:
	void Display()
	{
		cout << "Display()" << endl;
		cout << "year:" << _year << endl;
	}
	void Display()const        //不希望它被修改,所以加const
	{
		cout << "Display()const" << endl;
		cout << "year:" << _year << endl;
	}
private:
	int _year;
};
void Test()
{
	Date d1;
	d1.Display();     //Display()
	const Date d2;
	d2.Display();      //Display()const
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

接下来一起思考几个问题:

1.const对象可以调用非const成员函数吗? //不可以
2.非const对象可以调用const成员函数吗?//可以
3.const成员函数内可以调用其他的非const成员函数吗?//不可以
4.非const成员函数内可以调用其他的const成员函数吗?//可以
ps:即权限缩小的话,都可以

&取地址操作符重载
Date *operator&(); 
Date *operator&()const;
  • 1
  • 2

这两个运算符一般不需要重载,使用编译器生成的默认取地址的重载即可。只有特殊情况,比如想让别人获得到指定的内容,才需要重载。这里我就不具体实现了~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/608164
推荐阅读
相关标签
  

闽ICP备14008679号