Const修饰类成员函数

主要说明const 类成员函数调用方式 以及this指针对应变化

SimpleConst.h
#pragma once
class A
{
public:
	int a;
	int b;
	const int c;
	
	A(int i, int j, int t);

	//const 成员函数
	void PrintSum() const;


	void AddNum();
};
SimpleConst.cpp

#include "SimpleConst.h"
#include <iostream>
using namespace std;

A::A(int i, int j, int t):
	a(i),b(j),c(t)
{
	cout << "Constr" << endl;
}

void A::PrintSum() const
{
	cout << "a:"<<a << " b" << b << " c" << c <<endl;
}


void A::AddNum()
{
	a = a * 2;
	b = b * 2;

	cout << "Add Num()" << a << b << endl;
}
main.cpp 

#include <iostream>
#include "SimpleConst.h"
int main()
{
	class A* ptr_a = new A(5,7,6);
	//非const 类指针下的 this 指针 A * const this
	//非const 类指针 成员可以调用普通成员函数/const 成员函数
	ptr_a->PrintSum();
	ptr_a->AddNum();


	const class A* c_prt_a = new A(44, 5, 6);
	c_prt_a->PrintSum();
	//const 类指针下的 this 指针 const A * const this 
	//const 类指针/引用 仅能调用const 成员函数
	
}

posted on 2022-09-25 11:33  Animer  阅读(23)  评论(0编辑  收藏  举报