当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 坐在马桶上常常被扔下的炸弹溅得满屁股花的说~~哪位达人掌握了压水花技巧?(转) ......
    摘要: 一台机器,刚装好了win2k和软件。却发现没有dos,不好做ghost备份。如何给系统添加一个dos啊?(别让我重新装2000系统啊) ......


有关类的嵌套,请帮忙(菜呀,在线)

class   A  
  {  
  protected:  
          int   x;  
          A   *link;  
  };  
   
  class   B   :   private   A  
  {  
  protected:  
          A   *p1;  
          A   *p2;  
  };  
   
  class   C   :   private   B  
  {  
  public:  
  int   func();  
  private:  
          B   y;  
  };  
   
  int   C::func()  
  {  
          int   n;  
          n=y.p1->link->x   =   2;  
          return(n);  
  }  
  我的想法是想在C类中通过func函数访问到所有这3个类的成员函数,  
  请问为什么不可以呀?  
  有别的办法吗,比如友元什么的

NO.1   作者: arfi

将类的继承改为public试一下

NO.2   作者: arfi

继承改为公共的是不是也没用  
  不知道你错在什么地方  
 

NO.3   作者: glassshark

初始化指针空间,未分配空间对象地址和未初始化的指针会引起错误。

NO.4   作者: hengxingzhisan

是不是该给每个类写构造函数为指针分配地址空间。。

NO.5   作者: zhoory

class   A  
  {  
  protected:  
          int   x;  
          A   *link;  
  friends:   int   fun();  
         
  };  
   
  class   B   :   private   A  
  {  
  protected:  
          A   *p1;  
          A   *p2;  
  friends:   int   fun();  
  };  
   
  class   C   :   private   B  
  {  
  public:  
  // int   func();  
  friends:   int   fun();  
  private:  
          B   y;  
  };  
   
  int   func()  
  {  
          int   n;  
          n=y.p1->link->x   =   2;  
          return(n);  
  }  
  这样可以吗?  
 

NO.6   作者: arfi

如果你采用继承的话,C类中本来就包括x,link,p1,p2等数据,以及一个y等数据。你的本意是这样的吗?如果只想在C中包含一个成员y,就不要使用类继承,只需要在A及B中将C声明为友元即可。如:  
  class   A  
  {  
          friend   class   C;  
          protected:  
                  int   x;  
                  A   *link;  
  };  
   
  你在调用到   n=y.p1->link->x   =   2;时,注意一下link初始化过了没有。  
 


    摘要: 最近小弟我在编程的时候,遇到了要得到*.lnk文件的真实路径的问题,小弟我查了很多资料,想了很久也没有想明白,但是其他的软件可以得到这个数据,只有请教各位大虾了,我现在非常着急,不知道那位大虾能快点帮我解决这个问题,谢了!! qq:29967208 e_mail:fox144215@163.com ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE