簡要說明結構體(struct)和類(class)的異同


(C++中的)結構體與類的異同

轉載來源:https://zhidao.baidu.com/question/115443908.html

當接觸面向對象(例如C++)之后,細心的同學心中就會有這樣的疑惑了,結構體和類的作用似乎有異曲同工之處,那么,在一般寫程序時,在結構體和類之間,到底該選哪一個呢?所以,今天我們來說一下結構體和類究竟有什么異同。

首先,我們需要了解它們定義的形式,如下:

 

 1 //結構體定義形式 
 2 typedef struct Student{
 3     int age;
 4     int number;
 5     char name[20];
 6 };
 7 //類的定義形式
 8 class Student{
 9     private:
10         int age;
11         int number;
12         char name[20];
13     public:
14 }; 

 

 我們發現,在C++中,結構體與類的定義形式很相似。實際上,C++中,定義結構體甚至可以省略掉typedef關鍵字,再來看看它們如何定義對象變量,如下:

 

1 //結構體定義對象變量 
2 Student stu1;
3 //類中定義對象變量 
4 Student stu2;

 

定義方式可謂是一模一樣。(在這里需要強調的是,在C語言中,須這樣定義---struct Student stu1,C++對其進行優化,使結構體在定義變量的時候可以不再需要struct關鍵字)

說了相同之處,那么,它們的不同之處在什么地方體現呢?

 

1.結構體一般用來封裝數據,其內部所有成員均為public屬性,而類中的成員默認為private(私有)屬性的。

2.雖然兩者都能定義函數,但類有專屬的構造函數,析構函數等先天具備的函數

3.類具有三種屬性,即(private,public,protected),而結構體只有public默認屬性

4.類還具有三種繼承方式,即有9種訪問權限。結構體只有一種。

以上即是C++種結構體與類的基本異同,如有錯誤以及不足之處,望明確指出,一定加以改正。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM