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

 

 ·错在哪    »显示摘要«
    摘要: 我想把label1(从list1中选的)中的内容加到list2(list box)中,但要保证加的内容list2不存在, 有2个command, 1个是加,还有1个是把list1的全加的list2中, 当我用完“全加”命令后,本来再按“加”,应该什么也没加的(因为不重复啊),但不知为什么,它居然有加? 兄弟们,帮我看下哪错了?该怎么改?急! 附:“加”的命令 private sub com......
 ·vss的问题    »显示摘要«
    摘要: vssexplore中,文件前的图标不一致 正常情况,是一页文档的那种,现在有的文件前面的图标是三页纸的那种 听说是复制引起的,盼详细解答 ......


error C2248

我想查看构造函数、析构函数和复制构造函数的调用过程。源程序如下:  
  #include<iostream>  
  using   namespace   std;  
  enum   CPU_Rank{p1=1,p2,p3,p4,p5,p6,p7};  
  class   CPU  
  {  
  public:  
  CPU(CPU_Rank,int,float);  
  CPU(const   CPU   &);  
  ~CPU();  
  CPU_Rank   GetRank()   const;  
  void   SetRank(CPU_Rank);  
  int   GetFrequency()   const;  
  void   SetFrequency(int);  
  float   GetVoltage()   const;  
  void   SetVoltage(float);  
  void   Run();  
  void   Stop();  
  private:  
  CPU_Rank   rank;  
  int   frequency;  
  float   voltage;  
  };  
  class   RAM  
  {  
  public:  
  RAM(int,int);  
  RAM(const   RAM   &);  
  ~RAM();  
  int   GetFrequency()   const;  
  void   SetFrequency(int);  
  int   GetCapacity()   const;  
  void   SetCapacity(int);  
  private:  
  int   frequency;  
  int   capacity;  
  };  
  class   CDROM  
  {  
  public:  
  CDROM(int);  
  CDROM(const   CDROM   &);  
  ~CDROM();  
  int   GetTimes()   const;  
  void   SetTimes(int);  
  private:  
  int   times;  
  };  
  class   Computer  
  {  
  Computer(CPU,RAM,CDROM);  
  ~Computer();  
  void   Run();  
  void   Stop();  
  CPU   GetCpu()   const;  
  RAM   GetRam()   const;  
  CDROM   GetCdrom()   const;  
  private:  
  CPU   cpu;  
  RAM   ram;  
  CDROM   cdrom;  
  };  
   
   
  #include"computer.h"  
  CPU::CPU(CPU_Rank   r,int   f,float   v):  
  rank(r),  
  frequency(f),  
  voltage(v)  
  {  
  cout<<"CPU   constructor!"<<endl;  
  }  
  CPU::CPU(const   CPU   &   rhs)  
  {  
  rank=rhs.GetRank();  
  frequency=rhs.GetFrequency();  
  voltage=rhs.GetVoltage();  
  cout<<"CPU   copy   constructor!"<<endl;  
  }  
  CPU::~CPU()  
  {  
  cout<<"CPU   destructor!"<<endl;  
  }  
  CPU_Rank   CPU::GetRank()   const  
  {  
  return   rank;  
  }  
  void   CPU::SetRank(CPU_Rank   r)  
  {  
  rank=r;  
  }  
  int   CPU::GetFrequency()   const  
  {  
  return   frequency;  
  }  
  void   CPU::SetFrequency(int   f)  
  {  
  frequency=f;  
  }  
  float   CPU::GetVoltage()   const  
  {  
  return   voltage;  
  }  
  void   CPU::SetVoltage(float   v)  
  {  
  voltage=v;  
  }  
  void   CPU::Run()  
  {  
  cout<<"CPU   operates!"<<endl;  
  }  
  void   CPU::Stop()  
  {  
  cout<<"CPU   stops!"<<endl;  
  }  
  RAM::RAM(int   f,int   c):  
  frequency(f),  
  capacity(c)  
  {  
  cout<<"RAM   constructor!"<<endl;  
  }  
  RAM::RAM(const   RAM   &   rhs)  
  {  
  capacity=rhs.GetCapacity();  
  frequency=rhs.GetFrequency();  
  cout<<"RAM   copy   constructor!"<<endl;  
  }  
  RAM::~RAM()  
  {  
  cout<<"RAM   destructor!"<<endl;  
  }  
  int   RAM::GetCapacity()   const  
  {  
  return   capacity;  
  }  
  void   RAM::SetCapacity(int   c)  
  {  
  capacity=c;  
  }  
  int   RAM::GetFrequency()   const  
  {  
  return   frequency;  
  }  
  void   RAM::SetFrequency(int   f)  
  {  
  frequency=f;  
  }  
  CDROM::CDROM(int   t):  
  times(t)  
  {  
  cout<<"CDROM   constructor!"<<endl;  
  }  
  CDROM::CDROM(const   CDROM   &   rhs)  
  {  
  times=rhs.GetTimes();  
  cout<<"CDROM   copy   constructor!"<<endl;  
  }  
  CDROM::~CDROM()  
  {  
  cout<<"CDROM   destructor!"<<endl;  
  }  
  int   CDROM::GetTimes()   const  
  {  
  return   times;  
  }  
  void   CDROM::SetTimes(int   t)  
  {  
  times=t;  
  }  
  Computer::Computer(CPU   Mycpu,RAM   Myram,CDROM   Mycdrom):  
  cpu(Mycpu),  
  ram(Myram),  
  cdrom(Mycdrom)  
  {  
  cout<<"Computer   constructor!"<<endl;  
  }  
  Computer::~Computer()  
  {  
  cout<<"Computer   destructor!"<<endl;  
  }  
  CPU   Computer::GetCpu()   const  
  {  
  return   cpu;  
  }  
  RAM   Computer::GetRam()   const  
  {  
  return   ram;  
  }  
  CDROM   Computer::GetCdrom()   const  
  {  
  return   cdrom;  
  }  
  int   main()  
  {  
  CPU   MyCpu(p6,1,1.5);  
  MyCpu.Run();  
  MyCpu.Stop();  
  cout<<"My   cpus   rank   is   "<<MyCpu.GetRank()<<endl;  
  cout<<"My   cpus   frequency   is   "<<MyCpu.GetFrequency()<<"MHz\n";  
  cout<<"My   cpus   volatage   is   "<<MyCpu.GetVoltage()<<"V\n";  
  cout<<endl;  
  RAM   MyRam(133,256);  
  cout<<"My   rams   frequency   is   "<<MyRam.GetFrequency()<<"MHz\n";  
  cout<<"My   rams   capacity   is   "<<MyRam.GetCapacity()<<"MB\n";  
  cout<<endl;  
  CDROM   MyCdrom(48);  
  cout<<"My   cdroms   time   is   "<<MyCdrom.GetTimes()<<"X\n";  
  Computer   MyComputer(MyCpu,MyRam,MyCdrom);  
  return   0;  
  }  
   
   
   
  提示如下错误:  
  --------------------Configuration:   MyCPU   -   Win32   Debug--------------------  
  Compiling...  
  main3.cpp  
  D:\Program   Files\Microsoft   Visual   Studio\MyProjects\MyCPU\main3.cpp(144)   :   error   C2248:   Computer::Computer   :   cannot   access   private   member   declared   in   class   Computer  
                  d:\program   files\microsoft   visual   studio\myprojects\mycpu\computer.h(50)   :   see   declaration   of   Computer::Computer  
  D:\Program   Files\Microsoft   Visual   Studio\MyProjects\MyCPU\main3.cpp(144)   :   error   C2248:   Computer::~Computer   :   cannot   access   private   member   declared   in   class   Computer  
                  d:\program   files\microsoft   visual   studio\myprojects\mycpu\computer.h(51)   :   see   declaration   of   Computer::~Computer  
  Error   executing   cl.exe.  
   
  main3.obj   -   2   error(s),   0   warning(s)  
   
   
  我查看2001年的msdn,虽然里面有类似的情况,但未找到答案,麻烦大家帮忙分析一下,谢谢了!  
 

NO.1   作者: new1mm

class   的默认类型都是private,所以你应该这样定义:  
   
  class   Computer  
  {  
  public:  
  Computer(CPU,RAM,CDROM);  
  ~Computer();  
  void   Run();  
  void   Stop();  
  CPU   GetCpu()   const;  
  RAM   GetRam()   const;  
  CDROM   GetCdrom()   const;  
  private:  
  CPU   cpu;  
  RAM   ram;  
  CDROM   cdrom;  
  };  
 

NO.2   作者: lvbin1978

up

NO.3   作者: point_to

楼上的楼上是对的


    摘要: 一般玩那种? 我喜欢玩 柳暗花明(填充类)的,不过感觉很费眼睛的。 ......
» 本期热门文章:

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