这篇文章将为大家详细讲解有关C++继承中名字查找的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
实例如下:
#include<iostream> #include<string> using namespace std; class Base { public: void func() { cout << "func() in Base." << endl; } void func(int a) { cout << "func(int a) in Base." << endl; } void func(string s) { cout << "func(string s) in Base." << endl; } }; class Derived : public Base { public: //using Base::func; void print() { cout << "func() in Derived." << endl; } }; int main() { Derived d; d.Base::func();//指定基类版本 d.func(); d.func(12);//error,可在派生类中添加using Base::print; d.func("abc");//error,可在派生类中添加using Base::print; system("pause"); return 0; } //一个对象,引用,指针的静态类型决定了该对象哪些成员可见。 //派生类作用域嵌套在基类作用域中 //派生类成员将屏蔽同名的基类成员 //如果派生类想通过自身类型使用的基类中重载版本,则派生类必须要么覆盖所有重载版本,要么一个也不覆盖。 //利用using声明可把基类中的所有重载版本都添加到派生类作用域中 //名字查找先于类型检查,如果在派生类中找到了调用的函数名,则不会继续向上查找,接着进行类型检查
关于“C++继承中名字查找的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。