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

求解释,警告如何来的,让它如何没

2012-05-28 
求解释,警告怎么来的,让它怎么没#includeiostream#includestring.h#includecstdiousing namespace s

求解释,警告怎么来的,让它怎么没
#include"iostream"
#include"string.h"
#include"cstdio"
using namespace std;
class Student
{
  public: char *name;
  int num;
  double score;
  Student(int a,char *b,double c);
  void display()
  {
  cout<<"num:"<<num<<"\n"<<"name:"<<name<<"\n"<<"score:"<<score<<'\n'<<'\n';
  }
};
Student::Student(int a,char *b,double c)
{
  num=a;
  score=c;
  name=new char[strlen(b)+1];
  strcpy(name,b);


}
class Graduate:public Student
{
  public:
  double pay;
  Graduate(int a, char *b,double c,double d): Student(a,b,c)
{
  pay=d;
}
  void display()
  {
  cout<<"num:"<<num<<"\n"<<"name:"<<name<<"\n"<<"score:"<<score<<'\n'<<"pay="<<pay<<'\n';
  }
};

int main()
 {Student stud1(1001,"Li",87.5);
  Graduate grad1(2001,"Wang",98.5,563.5);
  Student *pt=&stud1;
  pt->display();
  grad1.display();
  return 0;
 }


[解决办法]
Student::Student(int a, const char *b,double c)

加上const ~
[解决办法]
你没有析构函数也就算了。你竟然new了name 后也不delete掉。
建议定义析构函数,在析构函数里delete

热点排行