c++類結構體和函式的區別是什麼?
1樓:惠企百科
c++中的結構體與類的區別只在於結構體的成員預設為公有成員(public可見性),而類的成員預設為私有成員(private可見性),c++中的結構體不同於c語言裡的結構體,c裡的結構體只能封裝一些單一的資料,不能含方法,但在c++的結構體內可以有建構函式,成員函式,還可以指定成員的訪問許可權(如public和private)。
1、類可以被認為是結構體的乙個公升級版,它是由結構體演變過來的,在此基礎上加了一些限制,以便更好實現物件導向的設計。結構體基本用在很多資料,需要乙個結構體來封裝這些資料。而類的話,是物件導向的思想,可以有很多介面讓人呼叫,私有變數等外部不能呼叫,還有保護型別的變數。
2、結構體也可以被認為是一種特殊的類,它不存在任何函式,構造和解構函式也沒有,而且是乙個公共的的類;相關推薦》c++中適用於類和結構體的記憶體池模板類。
3、c++類和結構體概念基本一致,區別在於結構體在預設情況下成員是公共的(public),類在預設情況下成員是私有的(private),其他的都一樣,類有的結構體也有。
4、c++結構體內部成員變數及成員函式預設的訪問級別是public,而c++類的內部成員變數及成員函式的預設訪問級別是private。
5、c++結構體的繼承預設是public,而c++類的繼承預設是private。
6、類要加上public變成共有的才能被訪問,而結構本身就是共有的可直接訪問。
7、c++中struct與class本質上相同的,只是預設的訪問許可權不同,之所以要保留struct,是為了與c相容。
與c中結構體不同的是,c++中定義結構體變數時可以不加struct關鍵字,如:
struct student{
char *name;
int age;
student s;//在c中的話要寫成struct student s;
c++類結構體和函式的區別
2樓:網友
結構體預設成員函式是public c++預設是private,兩者沒什麼大的區別。
因為c++是從c擴充套件而來,c是沒有class的,所以c++裡繼承c的一些東西就用的是結構體。
3樓:匿名使用者
當用win32 建立視窗的時候 不是先設計視窗類 建立視窗 顯示視窗,更新視窗和訊息迴圈麼。
其實向你說的僅僅乙個createwindow ()函式是不能建立好好乙個視窗的 要知道c++ 不是為了很好的進行封裝麼,當你將需要的引數放在類中,類裡的函式就能呼叫這些引數, 要是僅僅的設計這個函式 請問得傳多少引數才好,mfc 就是對這些底層函式的封裝。
c 繼承後的記憶體分配問題,c 中給結構體分配動態記憶體的問題 用new嗎 怎麼用
不能訪問是不能直接通過派生類物件直接呼叫,但是可以通過派生類的成員函式呼叫基類的公有函式來訪問基類的私有屬性.難道編譯器會分配一塊記憶體放著不管造成記憶體洩漏?因為在派生類中通過可以定義新函式成員來訪問這些記憶體 間接訪問 比如呼叫基類派生下來的成員函式 所以這些記憶體是可以被主動訪問或銷燬的。私有...
C如何定義類型別的陣列,C 中如何定義類的陣列,以及給他們賦值?
student 學生物件的陣列 liststu new list 學生物件的集合 c 中自定義類陣列和結構陣列的使用 發現很多時候給定的陣列要實現某個邏輯或處理很是麻煩,一維陣列,二維陣列,等等需要經過n多轉換,還不如自己寫一個自定義陣列,既方便又節省時間,以下是類陣列,其實相當於定義了一個實體類一...
c語言中如何用子函式呼叫結構體中的變數實現資料的輸入與輸出
用子函式實現結構體資料的輸入與輸出 對於多數子函式的輸入與輸出,有一定規律性可言。方法1 void型不傳值傳址呼叫與宣告。main中宣告void date in void date pout 函式定義前一定在main 前先定義結構體變數 全域性變數 然後定義輸入或輸出程式段。此時再main 呼叫即可...