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

来源:互联网 发布:wpf编程书籍 编辑:程序博客网 时间:2024/06/05 18:57

  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::”来区分。



0 0