当前位置:七七学习网文档大全求职指南求职笔试面试笔试题目今天的一个笔试题目» 正文

今天的一个笔试题目

[10-10 21:21:19]   来源:http://www.77xue.com  笔试题目   阅读:8962
概要: A(int data = 0){m_data = data; } int GetData(){return doGetData();} virtual int doGetData(){ return m_data;/*m_data = 0 */} //接口,如不直接调用,则调用派生类中实现他的函数 }; class B:public A { protected: int m_data; public: B(int data = 1){m_data = data; } //这里 A 中的m_data = 0 ,B中的m_data = 1 int doGetData(){ return m_data ;/*m_data = 1 */} //实现接口 }; class C:public B //C继承了A&B类的方法&属性,且未从新定义接口,故接口还是B类中定义的{ p
今天的一个笔试题目,标签:驾照笔试题目,腾讯笔试题目,http://www.77xue.com
  A(int data = 0){m_data = data;   }
  int GetData(){return doGetData();}
  virtual   int   doGetData(){  return m_data;/*m_data = 0 */}     //接口,如不直接调用,则调用派生类中实现他的函数
 };     
    
 class B:public   A     
 {     
  protected:
  int m_data;
  public:     
  B(int data = 1){m_data = data;  }
  //这里 A 中的m_data = 0 ,B中的m_data = 1
    
  int doGetData(){  return m_data ;/*m_data = 1 */}   //实现接口  
};  

class C:public B //C继承了A&B类的方法&属性,且未从新定义接口,故接口还是B类中定义的
{     
  protected:
  int m_data;
  public:     
  C(int data = 2){m_data = data;  }
  //这里 A 中的m_data = 0 ,B中的m_data = 1,C 类中的m_data = 2
};


int main()
{
C c(10);

cout<<c.GetData()<<endl;
//本来是要调用C类的GetData(),C中未定义,故调用B中的,但是B中未定义,故调用A中的GetData(),因为A中的doGetData()是虚函数,所以调用
//B类中的doGetData(),而B类的doGetData()返回B::m_data,故输出 1
cout<<c.A::GetData()<<endl;
//因为A中的doGetData()是虚函数,又因为C类中未重定义该接口,所以调用B类中的doGetData(),而B类的doGetData()返回B::m_data,故输出 1
cout<<c.B::GetData()<<endl;
//肯定返回 1 了
cout<<c.C::GetData()<<endl;
//因为C类中未重定义GetData(),故调用从B继承来的GetData(),但是B类也未定义,所以调用A中的GetData(),因为A中的doGetData()是虚函数,所以调用B类中的doGetData(),而B类的doGetData()返回B::m_data,故输出 1
cout<<c.doGetData()<<endl;
//肯定是B类的返回值 1 了
cout<<c.A::doGetData()<<endl;
//因为直接调用了A的doGetData(),所以输出 0 了
cout<<c.B::doGetData()<<endl;
//因为直接调用了B的doGetData(),所以输出 1 了
cout<<c.C::doGetData()<<endl;
//因为C类中未重定义该接口,所以调用B类中的doGetData(),而B类的doGetData()返回B::m_data,故输出 1
system("PAUSE");

return 0;
}
//这个程序已经通过VC++6.0的测试,且与解释的输出结果一致
//希望大家能够明白,谢谢了
//如果有错,还请大家批评指正啊,共同进步嘛!呵呵

【lyxfzl】:
构造函数从最基类的开始构造,各个类的同名变量没有形成覆盖,都是单独的变量.理解这两个重要的C++特性后解决这个问题就比较轻松了.!!!C++有时候很迷糊人的!

【jianxin33333】:
BEYOND_Q() 说的很明白,我也懂了,十分感谢

【g012345678】:
懂一点点

上一页  [1] [2] [3] [4] 


Tag:笔试题目驾照笔试题目,腾讯笔试题目求职指南 - 求职笔试面试 - 笔试题目

《今天的一个笔试题目》相关文章

联系我们 | 网站地图 | 范文大全 | 管理知识 | 教学教育 | 作文大全 | 语句好词
Copyright http://www.77xue.com--(七七学习网) All Right Reserved.
1 2 3 4 5 6 7 8 9 10