C++ 常成员函数

使用 const关键字修饰的函数为常成员函数,常成员函数声明的格式如下:

类型说明符 函数名(参数表) const;
#include <iostream>
using namespace std;

class Test{
	private:
		int t1, t2;
	
	public:
		Test(int t1, int t2) : t1(t1), t2(t2){}
		void print();
		void print() const;
}; 

void Test::print(){
	cout << t1 << ":" << t2 << endl; 
}

void Test::print() const {   // const修饰的常函数 
	cout << t1 << ":" << t2 << endl; 
}

int main(){
	Test *test1 = new Test(6, 9);
	test1 -> print();    // 调用 void print() 
	
	const Test *test2 = new Test(1, 2021);
	test2 -> print();   // 调用 void print() const 
	
	delete test2;
	delete test1;
	
	return 0;
}

注:

  • const是函数类型的一个组成部分,因此在函数的定义部分也要带const关键字。
  • 无论是否通过常对象调用常成员函数,在常成员函数调用期间,目的对象都被视同为常对象,因此常成员函数不能更新目的的对象的数据成员,也不能针对目的对象调用该类中没有用const修饰的成员函数。
  • const关键字可以用于对重载函数的区分。
  • 如果将一个对象说明为常对象,则通过该常对象只能调用它的常成员函数,而不能调用其他成员函数。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值