7_64.cpp
上传用户:zipjojo
上传日期:2009-07-20
资源大小:70k
文件大小:2k
源码类别:

文章/文档

开发平台:

C/C++

  1. #include<iostream.h>
  2. #include<string.h>
  3. #include<stdio.h>
  4. struct std
  5. {
  6. char* name;
  7. bool sex;
  8. unsigned int age;
  9. std* next;
  10. };
  11. class Student
  12. {
  13. public:
  14. Student(char* a[],bool b[],unsigned int c[],int n);
  15. ~Student();
  16. void print();
  17. private:
  18. std*num,*head,*p;
  19. int size;
  20. };
  21. Student::Student(char** a,bool* b,unsigned int* c,int n)
  22. {
  23. size=n;
  24. head=new std;
  25. head->next=NULL;
  26. num=head;
  27. for(int i=0;i<size;i++)
  28. {
  29. p=new std;
  30. p->name=*(a+i);
  31. p->sex=*(b+i);
  32. p->age=*(c+i);
  33. p->next=NULL;
  34. num->next=p;
  35. num=p;
  36. }
  37. }
  38. Student::~Student()
  39. {
  40. p=head->next;
  41. for(int i=0;i<size;i++)
  42. {
  43. num=p->next;
  44. delete p;
  45. p=num;
  46. }
  47. delete head;
  48. cout<<"析构函数在这里被自动调用!";
  49. cout<<endl;
  50. }
  51. void Student::print()
  52. {
  53. p=head->next;
  54. cout<<"学生情况如下:(1代表男性,0代表女性)"<<endl;
  55. cout<<"姓名"<<"  "<<"性别"<<"  "<<"年龄"<<endl;
  56. for(int i=0;i<size;i++)
  57. {
  58. cout<<p->name<<"    "<<p->sex<<"    "<<p->age<<endl;
  59. p=p->next;
  60. }
  61. }
  62. void main()
  63. {
  64. const int N=3;
  65. char* stdn[N];
  66. bool stds[N];
  67. unsigned int stda[N];
  68.     int stdsex;
  69. unsigned int stdage;
  70. for(int i=0;i<N;i++)
  71. {
  72. char* stdname;
  73.         stdname=new char[10];
  74. cout<<"Please input the student's name of NO."<<i+1<<":";
  75. cin>>stdname;
  76.      stdn[i]=stdname;
  77.         cout<<"Please input the student's sex of NO."<<i+1<<"(1--male,0--female)"<<":";
  78. cin>>stdsex;
  79.         if(stdsex) 
  80. stds[i]=true;
  81. else 
  82. stds[i]=false;
  83. cout<<"Please input the student's age of NO."<<i+1<<":";
  84. cin>>stdage;
  85. stda[i]=stdage;
  86. }
  87.     Student SA(stdn,stds,stda,N);
  88. SA.print();
  89. cout<<endl;
  90. // SA.Student::~Student();  错误:析构函数不能被显式调用
  91. }