C 基礎 類與物件 建立 成員 訪問

2021-06-11 23:00:01 字數 1496 閱讀 3738

c中的結構體存在缺點:

1.函式中的任意賦值語句都可以訪問結構體中的成員,但在現實生活中並不是什麼資料都可以被隨意訪問的,因此c語言中的結構體的資料是不安全的;

2.結構體中的資料和對該資料的操作是分離的,並不是乙個被封裝起來的整體,因此使程式難以重用,影響了軟體生產效率;於是c++中引入了類的概念。

c++中規定如果沒有對類的成員加私有private,保護protected,或公有public,則預設為私有的。

而對於c++的結構體來說,成員可以是私有的,保護的或公有的,但預設為公有的;還有要注意的是不能在類的宣告中給資料成員賦值.

一般情況下,乙個類的資料成員應該宣告為私有的,成員函式宣告為共有的。這樣,內部的資料隱藏在類中,在類的外部無法訪問直接訪問,使資料得到有效的保護。而公有的成員函式就成為一種與類外部溝通的介面。

(1)普通的成員函式:

c++中的成員函式要注意幾點:

1.類名和函式名之間應加上作用域運算子「::」,用於宣告這個成員函式是屬於哪乙個類的,如果在函式名前沒有類名,或既無類名又無作用域運算子「::」,那麼這個函式不屬於任何類,不是成員函式,而是普通函式;

2.在類的宣告中,成員函式原型的參數列中可以不說明引數的名字,而只說明它的型別,但在類外定義時必須既要說明引數型別又要說明引數名;

(2)內聯成員函式:

內聯函式又分為顯式宣告和隱式宣告2種方式。

隱式宣告:(這種定義的內聯成員函式沒有使用關鍵字inline進行宣告,因此叫隱式定義)

class kid

void showkid()

; inline void kid::setkid(int age,char*name,char****)

//注意:line 應該在函式定義之前(在宣告之前是否有inline對函式是否內聯不影響)

inline void kid::showkid()

kid1,kid2;

也可以是宣告了類後,使用時在定義物件:kid kid1,kid2;(宣告乙個類後,它並不接受和儲存具體的值,只作為生成具體物件的一種「樣板」,只有定義了物件後,系統才為物件分配儲存空間,以存放物件中的成員);

對物件中的成員的訪問可以是:

1.物件名.資料成員名/物件名.成員函式名(引數),比如kid1.setkid(10,"rookie_j","男");

2.指標訪問物件中成員,比如:class kid; kid kid,*ptr; ptr=&kid;cout3.還記得上節所講到的引用(reference)麼,還可以通過引用來訪問物件中的成員:class kid; kid kid;kid &ptr=kid; cout<;

舉例說明:

#include "stdafx.h"

#include usingnamespace std;

struct struct_kid //結構體

kid1;

class kid

*/ void showkid()//隱式內聯

C 基礎(13)類物件作為成員

類中的資料成員可以是基本資料型別,也可以是類物件這樣的復合資料型別。在乙個類的資料成員中包含了另乙個類的物件稱為類的組合。這個被包含的物件稱為物件成員或子物件。以下例項將日期類的物件作為學生類的成員 include using namespace std class cdate 日期類 cdate ...

c 類成員物件

成員物件 當乙個類的成員是另乙個類的物件時,這個物件就叫成員物件。1 出現成員物件時,如果成員物件的建構函式是有參建構函式,則該類的初始化列表需要對成員物件進行初始化。class member class test 2 乙個有成員物件的類例項化時要先呼叫成員物件的建構函式,然後再呼叫該類的建構函式,...

C 類 物件 成員

物件可以是人們要研究的任何事物,萬事萬物均可看作物件,從簡單的整數到複雜的飛機 衛星等均可以看作物件 class student void setage int age void setheight float height void setweight float weight char getn...