daojin505 2009-04-14 18:09
浏览 250
已采纳

很有趣的问题,Public继承和默认的集成

#include <iostream.h>
#include <stdio.h>
class A{
private:
    int i;
public:
    //int i;
    f(){
    cout<<i<<endl;
    }
};
class B:public A
{
};
class C:B{};
int main(){
C c;
c.f();
}

看下面的代码

:

#include <iostream.h>
#include <stdio.h>
class A{
private:
    int i;
public:
    //int i;
    f(){
    cout<<i<<endl;
    }
};
/****就在这里不一样****/
class B: A
{
};
class C:B{};
int main(){
C c;
c.f();
}

 

注意黑体中的,说什么来着:

 

因为是B继承A是PUBLIC继承

所以无法访问f();

 

我晕。。有高手么。

 

  • 写回答

4条回答 默认 最新

  • Candyut 2009-04-16 11:21
    关注

    Public继承子类和父类是is-a的关系

    Private继承子类和父类是 is-implemented-in-terms-of(是根据……实现的)

    结果:

    Private继承是一种纯技术上的继承,父类中的所有函数都具有了Private属性,且interface没有了(多态也就不存在了),所以Private继承是消除虚函数的一种手段

    Public则是不能访问父类的方法,只能访问自己重写/重载的方法。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 ogg dd trandata 报错
  • ¥15 高缺失率数据如何选择填充方式
  • ¥50 potsgresql15备份问题
  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错