首页 > 代码库 > C++虚函数访问权限的改变
C++虚函数访问权限的改变
如果在基类中虚函数的访问权限是一种情况,那么派生类在继承基类的时候,派生类可以重新定义基类虚函数的访问权限,经过实例验证是正确的。
从这里也说明了函数的覆盖或者说重定义跟前面的访问权限修饰没多大关系
//Base.h
//Son.h
//T.h
//main.cpp
从这里也说明了函数的覆盖或者说重定义跟前面的访问权限修饰没多大关系
//Base.h
#pragma once #include <iostream> using namespace std; class Base { public: Base(void){} ~Base(void){} virtual void fun(){cout<<"This is Base::fun"<<endl;} virtual void func()=0; };
//Son.h
#pragma once #include "base.h" class Son :public Base { public: Son(void){} ~Son(void){} virtual void fun(){cout<<"This is a son function"<<endl;} protected: virtual void func(){cout<<"what a fuck day it is"<<endl;} };
//T.h
#pragma once #include "son.h" class T : public Son { public: T(void){} ~T(void){} void xy() { Base *b = new Son(); b->func(); } };
//main.cpp
#include "testInline.h" #include "Son.h" #include "T.h" void main() { Base* pB; Son* pS = new Son(); pB = pS; pB->fun(); T tst; tst.xy(); }
结果:
This is a son function
what a fuck day it is
C++虚函数访问权限的改变
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。