首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

菜鸟的疑惑,求解答

2012-06-15 
初学者的疑惑,求解答C/C++ code#include iostream.h#include string.hclass Base{ private:char msg[3

初学者的疑惑,求解答

C/C++ code
#include <iostream.h>#include <string.h>class Base{ private:     char msg[30];  protected:     int n;  public:     Base(char s[],int m=0):n(m)     {  strcpy(msg,s);     }  void output(void)  {  cout<<n<<endl<<msg<<endl;  }};class Derived1:public Base{private:    int n;public:    Derived1(int m=1):Base("Base",m-1)    {  n=m; }    void output(void){  cout<<n<<endl;       Base::output();    }};class Derived2:public Derived1{private:    int n;public:    Derived2(int m=2):Derived1(m-1)    { n=m; }    void output(void)    {  cout<<n<<endl;       Derived1::output();    }};int main(){    Base B("Base Class",1);    Derived2 D;    B.output();    D.output();}

运行结果
1
Base Class
2
1
0
Base


当申明D这个对象时,为何不会把B对象赋的值覆盖?求解答。


[解决办法]
每个对象都单独有一份内存空间保存数据成员,static除外

热点排行
Bad Request.