const修饰类对象/对象指针/对象引用

本文详细介绍了C++中const限定符的应用场景,特别是针对成员函数如何区分const与非const,以及它们如何影响对象的调用方式。通过具体实例展示了const限定符对成员函数的影响,并解释了编译错误的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

const修饰的对象,该对象的任何非const成员函数都不能被调用,因为任何非const成员函数会有修改

员变量的企图。


class AAA

{


public:


void func1();


void func2() const;


void func3(const string &str)

   str.at(0)


   str.clear();
};



};


     const AAA *a = new AAA;


     a->func1();//错误


     编译会报:error C2662: “AAA::func1”: 不能将“this”指针从“const AAA”转为“AAA &”


     a->func2();//正确



作为参数调用时的情况:



AAA a;

string str = "aaa";


a.func3(str);


        str.at(0)//正确


str.clear();//错误

error C2662: “std::basic_string<_Elem,_Traits,_Alloc>::clear”: 不能将“this”指


针从“const std::string”转换为“std::basic_string<_Elem,_Traits,_Alloc> 



参考:

http://www.cnblogs.com/lichkingct/archive/2009/04/21/1440848.html















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值