函数名前后加const的区别

	int const func1();
      int func2() const;

func1是合法的,表示一个常量函数,返回的是一个常量的值,也就是返回的值是不可以改变的!表示该成员函数的隐藏this指针参数是int* const类型的。

func2是非法的!const用在函数后只要是针对类的const对象。因此对函数的const限定词只能用于类的成员函数。使用const修饰的成员函数称为常成员函数,只有常成员函数才能操作常量或者常对象;没有常对象修饰的函数不能操作常对象。

常成员函数的说明格式为: <类型说明符>   <函数名>   (<参数表>)   const;  其中,const是加在函数说明后面的类型修饰符,它是函数类型的一个组成部分,因此,在函数实现部分也要带const关键字。

给个例子:

	class Text
	{  
	public:  
		void   printconst(void)  const
		{cout<<"hello"<<endl;}  
		void   print(void)
		{cout<<"hello"<<endl;}  
	private:  
		int k;  
	};  

	const Text a;  //定义了类Text的一常量对象  ;
	int   main(void)  
	{  
		a.printconst();         //ok  
		a.print();             //error a.print()调用是非法的  
		return 0;  
	}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值