【C++】类与对象(中)_7.const成员函数

7.const成员

7.1 const修饰类的成员函数

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

我们来看看下面的代码

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
class Date
{
public:
	void Display()
	{
		cout << "Display ()" << endl;
		cout << "year:" << _year << endl;
		cout << "month" << _month << endl;
		cout << "dat" << _day << endl;
	}
	void Display() const
	{
		cout << "Display () const" << endl;
		cout << "year:" << _year << endl;
		cout << "month:" << _month << endl;
		cout << "dat:" << _day << endl << endl;
	}
private:
	int _year; //年
	int _month;//月
	int _day;  //天
};

void Test()
{
	Date d1;
	d1.Display();

	const Date d2;
	d2.Display();
}

请思考下面的几个问题:

  1. const对象可以调用非const成员函数吗?
  2. 非const对象可以调用const成员函数吗?
  3. const成员函数内可以调用其它的非const成员函数吗?
  4. 非const成员函数内可以调用其它的const成员函数吗?
相关推荐
Bona Sun几秒前
单片机手搓掌上游戏机(十九)—pico运行doom之硬件连接
c语言·c++·单片机·游戏机
故事不长丨7 分钟前
解锁C#编程秘籍:封装、继承、多态深度剖析
开发语言·数据库·c#
远瞻。7 分钟前
【环境配置】快速转移conda上的python环境
开发语言·python·conda
缘三水12 分钟前
【C语言】5.printf和scanf(新手向详细版)
c语言·开发语言·基础语法
无敌最俊朗@12 分钟前
Qt处理tcp数据 粘包 拆包 的简单方法
开发语言
亭上秋和景清13 分钟前
数据在内存中的存储
java·开发语言
小二·17 分钟前
Java基础教程之网络编程
java·开发语言·网络
乾元17 分钟前
多厂商配置对齐器:AI 如何在 Cisco / Huawei / Juniper 间做语义映射
运维·开发语言·网络·人工智能·网络协议·华为·智能路由器
熊文豪17 分钟前
使用Python快速开发一个MCP服务器
服务器·开发语言·python·mcp
leo_23218 分钟前
SMP(软件制作平台)语言基础知识简介之一
开发语言·smp(软件制作平台)·软件开发工具