C 學習筆記(類的定義)

2022-08-05 06:15:10 字數 1757 閱讀 8307

1 public

共有訪問。不受任何限制。

2 private

私有訪問。只限於本類成員訪問,子類,例項都不能訪問。

3 protected

只限於本類和子類訪問,例項不能訪問。

4 internal

內部訪問。只限於本專案內訪問,其他不能訪問。

5 protected internal

內部保護訪問。只限於本專案或是子類訪問,其他不能訪問。

6 abstract

抽象類7 sealed

密封的類

修飾符含義

無或internal

只有在當前專案中訪問類

public

可以在任何地方訪問類

abstract或internal abstract

類只能在當前專案中訪問,不能例項化,只能供繼承之用

public abstract

類可以在任何地方訪問,不能例項化,只能供繼承之用

sealed或internal sealed

類只能在當前專案中訪問,不能供派生之用,只能例項化

public sealed

類可以在任何地方訪問,不能供派生之用,只能例項化

8 類和結構

先看一段例項**

namespace test

class myclass

public int val;

struct mystruct

public int val;

class program

static void main(string args)

myclass objecta = new myclass();

myclass objectb = objecta;

objecta.val = 10;

objectb.val = 20;

mystruct structa = new mystruct();

mystruct structb = structa;

structa.val = 30;

structb.val = 40;

console.writeline("objecta.val = ",objecta.val);

console.writeline("objectb.val = ",objectb.val);

console.writeline("structa.val = ",structa.val);

console.writeline("structb.val = ",structb.val);

console.readkey();

輸出結果為:

objecta = 20

objectb = 20

structa = 30

structb = 40

物件是引用型別(objecta和objectb)。在把物件賦值給變數的時候,實際上是把帶有乙個指標的變數賦值給了該指標所指向的物件。在實際**中,指標是記憶體中的乙個位址,位址是記憶體中該物件所在的位置。在用下面的**行把第乙個物件引用賦值給型別為myclass的第二個變數時,實際上是複製了這個位址。

myclass objectb = objecta;

這樣兩個變數就包含同乙個物件的指標。

而結構是值型別。其變數並不包含結構的指標,而是包含結構本身。在用下面的**把第乙個結構賦值給型別為mystruct的第二個變數時,實際上是把第乙個結構的所有資訊複製到另乙個結構中。

mystrujct structb = structa;

C 學習筆記(五) 類成員的定義

一 定義域 標準的宣告格式 class myclass 這種宣告格式的成員是可以對其進行初始化的。但是它是 myclass 的公有成員,可在例項化 myclass 的物件後進行初始化或修改操作。myclass myclass new myclass myclass.myint 1 域 成員 也可以使...

c 經典入門學習筆記 定義類成員

基本語法部分 成員的訪問級別確定成員的使用範圍,常用下面的關鍵字 public 成員可以由任何 訪問 private 只能由類中的 訪問 internal 只能由定義它的專案內部的 訪問 protected 成員只能由類或派生類中的 訪問 欄位的定義 class myclass 如果該屬性是唯讀的,...

c 學習筆記 類

c 學習筆記 類 refer c primer 在c 中,用類來定義自己的抽象資料結構。在乙個原始檔中,乙個類只能被定義一次 宣告可以多次 如果在多個檔案中定義乙個類,那麼每個檔案定義必須完全相同。可以宣告乙個類而不定義它。這個宣告被稱為向前宣告,是乙個不完全型別 已知其為乙個型別,但不知道包含哪些...