构造函数的初始化表

构造函数的初始化表

构造函数有个特殊的初始化方式叫“初始化表达式表”(简称初始化表)。初始化表 位于函数参数表之后,却在函数体 {} 之前。这说明该表里的初始化工作发生在函数体 内的任何代码被执行之前。

 

 1 #include <iostream>
 2 
 3 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
 4 using namespace std;
 5 
 6 int main(int argc, char** argv) {
 7       int i;
 8     //定义名为student的递归结构 
 9     struct  student {
10            char name[10];
11            int  math;
12            int  computer;
13            float sum;
14            student *next;    //next成员是指向自身的结构指针 
15     };
16 
17     //用student声明3个结构指针变量
18     struct student *head,*tail,*temp;      
19 
20     //申请第1块数据,并设置各结构指针的初值
21     temp=new struct student;    //申请内存 
22     head=temp;   // 头指针 
23     tail=head;    // 尾指针 
24 
25     //循环为链表输入数据
26     cout<<"\tname    Math   Computer"<<endl;
27     for (i=1;;i++) {
28         cout<<i<<"\t";
29         cin>>temp->name;
30         if (temp->name[0]!='*')
31         {
32             cin>>temp->math>>temp->computer;
33             temp->sum=temp->math+temp->computer;
34             temp->next=NULL;
35             tail=temp;      //设置链表尾指针 
36          }
37          else
38          {
39           // 以下是输入结束处理 
40             delete temp;
41             tail->next=NULL;
42             break;
43          }
44         //为下一个学生申请内存
45         temp->next=new struct student; 
46         temp=temp->next;    // 使处理指针temp指向新内存块
47     }
48 
49     //将链表数据从头到尾打印出来
50     cout<<"--------------------"<<endl;
51     temp=head;
52     while (temp!=NULL) {
53            cout<<temp->name<<","<<temp->math<<",";
54            cout<<temp->computer<<","<<temp->sum<<endl;
55            temp=temp->next;
56      }
57 }

 

posted @ 2018-08-02 12:58  borter  阅读(237)  评论(0编辑  收藏  举报