【C++】:const成员,取地址及const取地址操作符重载

2024-05-09 1884阅读

目录

  • 一,const成员
  • 二,取地址及const取地址操作符重载

    一,const成员

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

    使用方式:规定在函数后面加 const。

    看看下面的几段代码:

    代码1:对象d1是const类型,Print函数后面没有const,运行结果报错。

    class Date
    {
    public:
    	Date(int year, int month, int day)
    	{
    		_year = year;
    		_month = month;
    		_day = day;
    	}
    	
    	//d1.Print(&d1); d1对象类型是 const Date* 只读
    	void Print() //Date* const this 可读可写 权限放大了
    	{
    		cout 
    	//d1是const对象,d1对象类型是const Date*
    	const Date d1(2024, 4, 14);
    	d1.Print();
    	return 0;
    }
    
    public:
    	Date(int year, int month, int day)
    	{
    		_year = year;
    		_month = month;
    		_day = day;
    	}
    	
       //d1.Print(&d1); d1对象类型是 const Date* 只读
       //const Date* const this,const修饰*this,本质改变this的类型
    	void Print() const
       {
    	cout 
    	const Date d1(2024, 4, 25);
        //d1是const对象,d1对象类型是 const Date*
    	d1.Print();
    	return 0;
    }
    
    public:
    	Date(int year, int month, int day)
    	{
    		_year = year;
    		_month = month;
    		_day = day;
    	}
    	
       //d2.Print(&d2); d2对象类型是Date* const,可读可写
    	void Print() const
       {
    	cout 
    	Date d2(2024, 4, 25);//d2是非const对象
    	
    	d2.Print();//调用Print就是权限的缩小
    	return 0;
    }
    
    public:
    	A* operator&()
    	{
    		cout 
    		cout 
    	A aa1;
    	const A aa2;
    	cout 
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]