首页 > 其他 > 详细

继承名称的掩盖

时间:2014-07-07 17:46:15      阅读:313      评论:0      收藏:0      [点我收藏+]
///////////////////////////////////////////////////////////////////////////////
//
//  FileName    :   effect_item33.h
//  Version     :   0.10
//  Author      :   Ryan Han
//  Date        :   2013/07/26 16:50:14
//  Comment     :  
//
///////////////////////////////////////////////////////////////////////////////
#ifndef EFFECT_ITEM33_H
#define    EFFECT_ITEM33_H

class base{
public:
    virtual void mf1() = 0;
    virtual void mf1(int);
    virtual void mf2();
    void mf3();
    void mf3(double);
private:
    int x;
};

class derive : public base {
public:
    using base::mf1;
    void mf1();
    void mf4();
private:
    int y;
};

#endif
///////////////////////////////////////////////////////////////////////////////
//
//  FileName    :   effect_item33.cpp
//  Version     :   0.10
//  Author      :   Ryan Han
//  Date        :   2013/07/26 16:50:14
//  Comment     :  
//
///////////////////////////////////////////////////////////////////////////////
#include "effect_item33.h"

#include <iostream>
using namespace std;

void base::
mf1() 
{
    cout << "base::mf1() was called." << endl;
}
void base::
mf1(int) 
{
    cout << "base::mf1(int) was called." << endl;
}
void base::
mf2() 
{
    cout << "base::mf2() was called." << endl;
}
void base::
mf3() 
{
    cout << "base::mf3() was called." << endl;
}
void base::
mf3(double) 
{
    cout << "base::mf3(double) was called." << endl;
}
void derive::
mf1() 
{
    cout << "derive::mf1() was called." << endl;
}
void derive::
mf4() 
{
    cout << "derive::mf4() was called." << endl;
}
///////////////////////////////////////////////////////////////////////////////
//
//  FileName    :   effect_item33_client.cpp
//  Version     :   0.10
//  Author      :   Ryan Han
//  Date        :   2013/07/26 16:50:14
//  Comment     :  
//    Output        :
//    $ ./a
///////////////////////////////////////////////////////////////////////////////
#include "effect_item33.h"
#include <iostream>
using namespace std;

int main() {
    derive d;
    d.mf1();
    d.mf1(3);
    return 0;
}

继承类中的成员函数将覆盖基类中的同名函数,不论virutal不virtual,和参数是否相同,基类中的函数一律不再可见。

继承名称的掩盖,布布扣,bubuko.com

继承名称的掩盖

原文:http://www.cnblogs.com/dracohan/p/3813613.html

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