【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成员函数吗?
相关推荐
2401_8762213413 分钟前
Tasks and Deadlines(Sorting and Searching)
c++·算法
kngines13 分钟前
【Node.js从 0 到 1:入门实战与项目驱动】1.2 Node.js 的核心优势(非阻塞 I/O、事件驱动、单线程模型)
开发语言·javascript·node.js
杜子不疼.19 分钟前
《Linux编译器:gcc/g++食用指南》
linux·服务器·开发语言
超级小忍38 分钟前
Maven 常用命令详解
java·开发语言·maven
跟着珅聪学java2 小时前
Java 发送 HTTP POST请求教程
开发语言·lua
重生之我是Java开发战士2 小时前
【C语言】动态内存管理详解
c语言·开发语言·算法
Hello.Reader2 小时前
Rust ⽣成 .wasm 的极致瘦⾝之道
开发语言·rust·wasm
稚肩2 小时前
DHCP 握手原理
开发语言·网络协议
赵_|大人2 小时前
Qt 自动无法加载数据库为空
开发语言·数据库·qt
fbbqt2 小时前
Go语言 逃 逸 分 析
开发语言·golang