| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 550 人关注过本帖
标题:请问C++类的私有派生,如何使用派生类的对象调用基类的函数?
取消只看楼主 加入收藏
w2009w
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:190
专家分:542
注 册:2015-4-20
结帖率:100%
收藏
已结贴  问题点数:22 回复次数:3 
请问C++类的私有派生,如何使用派生类的对象调用基类的函数?
定义一个基类Base,有两个公有成员函数fu1(),fu2(),私有派生出Derived类,如何通过Derived类的对象调用基类的函数fu1()。
#include<iostream>
using namespace std;
class Base
{
public:
    int fu1()
    {
        cout<<"Base func 1"<<endl;
        return 0;
    }
    int fu2()
    {
        cout<<"Base func 2"<<endl;
        return 0;
    }
};
class Derived:private Base{};
int main()
{
    Derived a;
    a.Base::fu1();
    return 0;
}
派生类的函数体和调用代码不知道怎么写啊?
搜索更多相关主题的帖子: public 如何 
2015-06-21 17:07
w2009w
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:190
专家分:542
注 册:2015-4-20
收藏
得分:0 
有错误,这样不对的!
1>d:\c++语言程序设计\7-9\7-9\7-9.cpp(25) : error C2247: 'Base::fu1' not accessible because 'Derived' uses 'private' to inherit from 'Base'
2015-06-22 10:04
w2009w
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:190
专家分:542
注 册:2015-4-20
收藏
得分:0 
正确解答:
#include<iostream>
using namespace std;
class Base
{
public:
    int fu1()
    {
        cout<<"Base func 1"<<endl;
        return 0;
    }
    int fu2()
    {
        cout<<"Base func 2"<<endl;
        return 0;
    }
};
class Derived:private Base
{
public:
    int fu1(){return Base::fu1();}
    int fu2(){return Base::fu2();}
};
int main()
{
    Derived a;
    a.fu1();//调用父类函数
    return 0;
}
2015-06-22 10:21
w2009w
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:190
专家分:542
注 册:2015-4-20
收藏
得分:0 
公有继承当然可以了,我要的就是私有继承的情况!
2015-06-22 11:28
快速回复:请问C++类的私有派生,如何使用派生类的对象调用基类的函数?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019446 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved