大佬教程收集整理的这篇文章主要介绍了c – 通过对基类的引用来调用虚函数,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
#include <iostream> using namespace std; class instrument { public: virtual void play(){} }; class drum : public instrument { public: void play(){ cout << "dum,dum" << endl; } }; class piano : public instrument { public: void play(){ cout << "pling" << endl; } }; int main (){ instrument i; piano p; drum d; instrument &pi = i; pi.play(); // - pi = p; pi.play(); // pling pi = d; pi.play(); // dum,dum }
instrument &pi = i;
pi = p;
在这里,您将钢琴对象p指定给pi引用的对象.参考pi不会反弹到钢琴对象.它仍然指的是与以前相同的仪器对象.只是使用隐式生成的默认赋值运算符为其分配了不同的内容. (在这种情况下,赋值没有效果,但是将派生类型赋值给基类型通常会导致对象切片.)当你调用pi.play()时,引用仍然引用一个乐器对象而乐器:: play是执行.
关键是,虽然您可以获得指向不同类型的不同对象的指针,但您不能对引用执行相同操作.它总是指向同一个对象.您可以使用多个引用来修复代码:
instrument &pi = i; pi.play(); // - instrument &pp = p; pp.play(); // pling instrument &pd = d; pd.play(); // dum,dum
以上是大佬教程为你收集整理的c – 通过对基类的引用来调用虚函数全部内容,希望文章能够帮你解决c – 通过对基类的引用来调用虚函数所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。