定义一个基类Base,有两个公有成员函数fn1(),fn2(),私有派生出Deriver类,如何通过Deriver类的对象调用基类的函数fn1()?
#include<iostream>
using namespace std;
class Base
{
public:
Base(int x,int y){X=x,Y=y;}
int fn1(){return X;}
int fn2(){return Y;}

展开全部
收起
4回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Z小姐

    20人对此回答表示赞同

    看不懂,是不是……
    展开
    20
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Yogi

    7人对此回答表示赞同

    运行时是不是出现"no appropriate default constructor available"
    翻译过来是"没有合法可用的默认构造函数".
    也就是说,你的程序本身存在问题.
    派生类构造函数的构造规则:
    当基类的构造函数没有参数,或没有显示定义构造函数时,派生类可以不向基类传递参数,甚至可以不定义构造函数.
    但是,当基类含有带有参数的构造函数时,派生类必须定义构造函数,以提供把参数传递给基类构造函数的途
    展开
    7
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • LanceCheng

    7人对此回答表示赞同

    派生类函数覆盖掉基类函数~

    调用基类函数必须加上基类名:Base::fn1();
    展开
    7
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 邱宸

    1人对此回答表示赞同

    定义一个基类Base,有两个公有成员函数fn1(),fn2(),私有派生出Deriver类,如何通过Deriver类的对象调用基类的函数fn1()?

    只能通过指向基类对象的指针。

    以上代码的错误之处在于Deriver类没有默认的构造函数,因此不能这样写:
    Derived b; // 错误,没有构造函数可以调用,b中变量无法初始化
    而应该写成:
    Derived *p = (Derived *)&a; // 类型转换
    Der
    展开
    1
    0回复
    发布于 6年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部