程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> C++01.類的引入

C++01.類的引入

編輯:關於C++

C++01.類的引入。本站提示廣大學習愛好者:(C++01.類的引入)文章只能為提供參考,不一定能成為您想要的結果。以下是C++01.類的引入正文


1.假定我們要輸入張三,李四兩團體的根本信息,包括姓名,年齡,可以用以下的C順序完成:

eg:

 1 #include <stdio.h>
 2 
 3 int main(int argc,char **argv)
 4 {
 5     char *zs_name="zhansan";
 6     int zs_age=10;
 7 
 8     char *ls_name="lisi";
 9     int ls_age=19;
10 
11     printf("name=%s,age=%d\n",zs_name,zs_age);
12     printf("name=%s,age=%d\n",ls_name,ls_age);
13     
14     return 0;
15 }

2.假定要輸入很多人的信息,那麼用下面這樣的順序思緒完成起來很不方便,可以用數組來完成:

eg:

 1 #include <stdio.h>
 2 
 3 int main(int argc,char **argv)
 4 {
 5     char *names[]={"zhangsan","lisi"};
 6     char ages[]={10,19};
 7 
 8     int i;
 9 
10     //用for來循環輸入
11     for(i=0;i<2;i++){
12         printf("name=%s,age=%d\n",names[i],ages[i]);
13     }
14 
15     
16     return 0;
17 }

3.假定根本信息的屬性有很多個,還有任務,婚姻情況等等的屬性,按下面的順序思想,我們就得添加很多用於保管屬性的數組,這顯然也不是很方便,可以持續改良順序,引入構造體:

eg:

 1 #include <stdio.h>
 2 
 3 struct person{
 4         char *name;
 5         int age;
 6         char *work;
 7     };
 8 
 9 int main(int argc,char **argv)
10 {
11     struct person persons[]={
12         {"zhangsan",10,"teacher"},
13         {"lisi",19,"doctor"},
14     };
15 
16     int i;
17 
18     //用for來循環輸入
19     for(i=0;i<2;i++){
20         printf("name=%s,age=%d,work=%s\n",persons[i].name,persons[i].age,persons[i].work);
21     };
22 
23     
24     return 0;
25 }

4.下面的函數只是在構造體內定義了屬性,我們可以持續改良,定義一些相關的函數:

eg:留意在C言語外面,只能寫函數指針。

 1 #include <stdio.h>
 2 
 3 struct person{
 4         char *name;
 5         int age;
 6         char *work;
 7 
 8         void (*printfInfo)(struct person *per);
 9     };
10 
11 void printfInfo(struct person *per)
12 {
13         printf("name=%s,age=%d,work=%s\n",per->name,per->age,per->work);
14 }
15 
16 int main(int argc,char **argv)
17 {
18     struct person persons[]={
19         {"zhangsan",10,"teacher",printfInfo},
20         {"lisi",19,"doctor",printfInfo},
21     };
22 
23     persons[0].printfInfo(&persons[0]);
24     persons[1].printfInfo(&persons[1]);
25     
26     return 0;
27 }

 

5.用更簡約的方式寫下面的順序,直接在構造體內寫函數,留意以下順序文件的後綴是“.cpp”而不是“.c”不然會呈現錯誤。

eg:

#include <stdio.h>

struct person{
        char *name;
        int age;
        char *work;

        void printfInfo(void)
        {
            printf("name=%s,age=%d,work=%s\n",name,age,work);
        }
    };
int main(int argc,char **argv)
{
    struct person persons[]={
        {"zhangsan",10,"teacher"},
        {"lisi",19,"doctor"},
    };

    persons[0].printfInfo();
    persons[1].printfInfo();
    
    return 0;
}

6.C++對struct做了擴展,可以直接在strucr內直接定義函數,函數可以直接訪問struct外面的屬性。可以把這個構造體重新定義為一個新的類別:

eg:

 1 #include <stdio.h>
 2 
 3 class person{
 4 public:            //必需定義權限為public,不然編譯會出錯。
 5         char *name;
 6         int age;
 7         char *work;
 8 
 9         void printfInfo(void)
10         {
11             printf("name=%s,age=%d,work=%s\n",name,age,work);
12         }
13     };
14 int main(int argc,char **argv)
15 {
16     struct person persons[]={
17         {"zhangsan",10,"teacher"},
18         {"lisi",19,"doctor"},
19     };
20 
21     persons[0].printfInfo();
22     persons[1].printfInfo();
23     
24     return 0;
25 }

  

 

面向對象順序編程的特點:

(1)封裝

(2)承繼

(3)多態

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved