第10,11周 阅读程序写出运行结果 (2)


  1. /* 
  2. *Copyright(c) 2016.烟台大学计算机与控制工程学院 
  3. *ALL rights  reserved. 
  4. *文件名称:main.cpp 
  5. *作者:孙亚茹
  6. *完成日期:2016年5月10日 
  7. *问题描述:阅读程序,写出执行结果 
  8. */  
  9. #include <iostream>
    using namespace std;
    class A
    {
    public:
        A(){a=0;}
        A (int i){a=i;}
        void print(){cout<<a<<"  ";}
    private:
        int a;
    };
    class B: public A
    {
    public:
        B(){b=0;}
        B(int i, int j, int k): A(i),aa(j){b=k;}
        //思考:这3处出现的print,有何区别
        void print()      //(1)
        {
            A::print();   //(2)
            aa.print();   //(3)
            cout<<b<<endl;
        }
    private:
        int b;
        A aa;
    };
    int main()
    {
        B test[2];
        test[0]=B(1,4,7);
        test[1]=B(2,5,8);
        for(int i=0; i<2; i++)
            test[i].print();
        return 0;
    }

答案:

        (1)print是B的成员函数。(2)print是由于继承类与派生类成员函数名相同,故用A::来区分。(3)aa是A类的数据成员也是调用A的构造函数。

知识小结:

        当派生类与继承类成员函数名相同时应用类名加作用符来区分,例如:A与B的相同用“A::”来区分。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值