C++中判断成员函数是否重写
判断一个成员函数是不是虚函数(重写),有两个三个条件:
注意:如果这两个函数的返回类型分别为基类和派生类,返回值为指向基类和派生类的指针或引用,则也构成重写。此返回类型称为协变。
调用这些成员函数时,使用对象指针,这样当指针指向不同的对象时,就可以调用不同类的成员函数。
下面给一个程序分析:
#include<iostream> using namespace std; class Grandam { public: virtual void introduce_self() { cout << "I am grandam." << endl; } }; class Mother:public Grandam { public: void introdude_self() { cout << "I am mother." << endl; } }; class Daughter :public Mother { public: void introduce_self() { cout << "I am daughter." << endl; } }; int main() { Grandam* ptr; Grandam g; Mother m; Daughter d; ptr = &g; ptr->introduce_self(); ptr = &m; ptr->introduce_self(); ptr = &d; ptr->introduce_self(); return 0; }
结果如图所示:
从结果可知,每次都执行了成员函数的虚函数introduce_self()版本,解决了继承来的二义性问题。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
函数功能:判断屏幕是否亮屏 函数方法 bool = device.isWake() 返回值 类型 说明 bool string true - 屏幕亮屏,false - 屏幕黑屏 函数用例 bool = device.isWake() if bool then toast("屏幕亮屏",2) mSleep(3000) else toast("屏幕黑屏",2) mSle
函数名称:判断文件(夹)是否存在 函数功能: 判断文件(夹)是否存在 函数方法 flag = file.isExist(path) 参数 类型 必填 说明 path string 是 需要判断的文件(夹)路径 返回值 类型 说明 flag boolean true - 文件(夹)存在,false - 文件(夹)不存在 函数用例 path = "/sdcard/LuaBox/Projects/" f
函数名称:获取音频播放状态 函数功能: 获取音频是否在播放 函数方法 flag = media.isPlaying() 返回值 类型 说明 flag boolean true - 正在播放音频,false - 未播放 函数用例 media.playAudio("/mnt/sdcard/LuaBox/Projects/1/1.mp3",5,true) flag = media.isPlaying()
C++ 类 & 对象 类的成员函数是指那些把定义和原型写在类定义内部的函数,就像类定义中的其他变量一样。类成员函数是类的一个成员,它可以操作类的任意对象,可以访问对象中的所有成员。 让我们看看之前定义的类 Box,现在我们要使用成员函数来访问类的成员,而不是直接访问这些类的成员: class Box { public: double length; // 长度
检查提供的整数是否为素数。 检查数字从 2 到给定数字的平方根。 如果它们中的任何一个可以整除给定的数字,则返回 false ,否则返回 true ,除非数字小于 2 。 const isPrime = num => { const boundary = Math.floor(Math.sqrt(num)); for (var i = 2; i <= boundary; i++) if (
本文向大家介绍什么是C#中的静态成员函数?,包括了什么是C#中的静态成员函数?的使用技巧和注意事项,需要的朋友参考一下 静态函数只能访问静态变量。静态函数甚至在创建对象之前就已存在。 将静态函数设置为- 以下是演示静态函数用法的示例- 示例 输出结果