C++ 中const修饰虚函数实例详解
作者:lqh 发布时间:2022-01-06 16:40:47
标签:C++,const
C++ 中const修饰虚函数实例详解
【1】程序1
#include <iostream>
using namespace std;
class Base
{
public:
virtual void print() const = 0;
};
class Test : public Base
{
public:
void print();
};
void Test::print()
{
cout << "Test::print()" << endl;
}
void main()
{
// Base* pChild = new Test(); //compile error!
// pChild->print();
}
【2】程序2
#include <iostream>
using namespace std;
class Base
{
public:
virtual void print() const = 0;
};
class Test : public Base
{
public:
void print();
void print() const;
};
void Test::print()
{
cout << "Test::print()" << endl;
}
void Test::print() const
{
cout << "Test::print() const" << endl;
}
void main()
{
Base* pChild = new Test();
pChild->print();
}
/*
Test::print() const
*/
【3】程序3
#include <iostream>
using namespace std;
class Base
{
public:
virtual void print() const = 0;
};
class Test : public Base
{
public:
void print();
void print() const;
};
void Test::print()
{
cout << "Test::print()" << endl;
}
void Test::print() const
{
cout << "Test::print() const" << endl;
}
void main()
{
Base* pChild = new Test();
pChild->print();
const Test obj;
obj.print();
Test obj1;
obj1.print();
Test* pOwn = new Test();
pOwn->print();
}
/*
Test::print() const
Test::print() const
Test::print()
Test::print()
*/
备注:一切皆在代码中。
总结:const修饰成员函数,也属于函数重载的一种范畴。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
来源:http://www.cnblogs.com/Braveliu/p/3622124.html


猜你喜欢
- 需求:学生输入姓名和语文、数学、英语,编程求出总分和平均分,并在屏幕上显示XX的总分和平均分using System;using Syste
- 本文实例讲述了java基于递归算法实现汉诺塔问题。分享给大家供大家参考,具体如下:package test;import java.util
- 前言在你的工作中,有时候可能会看到 @Accessors(chain = true) 这样的注解,他是 lo
- 一、背景日常开发中,有时候需要根据某个 key 加锁,确保多线程情况下,对该 key 的加锁和解锁之间的代码串行执行。大家可以借助每个 ke
- android开发中为activity增加左右手势识别,如右滑关闭当前页面。/* * for左右手势 *&n
- 谈到多线程就不得不谈到Synchronized,重要性不言而喻,今天主要谈谈Synchronized的实现原理。Synchronizedsy
- 本文参考文档Add Flutter to existing apps。首先有一个可以运行的原生项目第一步:新建Flutter moduleT
- 本文实例为大家分享了Android自定义星星可滑动评分控件的具体方法,供大家参考,具体内容如下此控件通过线性布局结合ImageView来实现
- 一、项目运行环境配置:Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,
- timer的schedule和scheduleAtFixedRate方法一般情况下是没什么区别的,只在某个情况出现时会有区别--当前任务没有
- 本文实例讲述了C#实现彻底删除文件的方法。分享给大家供大家参考。具体实现方法如下:经常用360的文件粉碎,删除隐私文件貌似还不错的。不过C#
- PDF中的墨迹注释(Ink Annotation),表现为徒手涂鸦式的形状;该类型的注释,可任意指定形状顶点的位置及个数,通过指定的顶点,程
- 目标了解HTTP 请求/响应头及常见的属性;了解如何使用SpringBoot处理头信息 ;了解如何使用SpringBoot处理Cookie
- 在处理模板时,可以由模板逻辑决定是否加载数据,以提高性能。在Spring Boot控制器中设置数据时,使用LazyContextVariab
- 缘起随着 App 的成长,我们难免会遇到以下这些需求:H5 跳原生界面Notification 点击调相关界面根据后台返回数据跳转界面,例如
- 官网下载直接打开官网:http://www.oracle.com/technetwork/java/javase/downloads/jdk
- springBoot是java开发中会经常用到的框架,那么在实际项目中项目配置了springBoot框架,应该如何在项目中读取配置文件中的参
- 前言本文主要给大家介绍了关于Java读取二进制文件的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。读Hex写CS
- package com.weixin.util;import java.io.IOException;import java.util.Ra
- 老风格,废话不多说了,直接给大家贴android获取屏幕宽高的代码了。主要代码:package com.km.screeninfo; &nb