首页 > 编程语言 > 详细

C++虚函数访问权限的改变

时间:2014-12-14 17:15:55      阅读:265      评论:0      收藏:0      [点我收藏+]
如果在基类中虚函数的访问权限是一种情况,那么派生类在继承基类的时候,派生类可以重新定义基类虚函数的访问权限,经过实例验证是正确的。
从这里也说明了函数的覆盖或者说重定义跟前面的访问权限修饰没多大关系

//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++虚函数访问权限的改变

原文:http://blog.csdn.net/ddupd/article/details/41925887

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!