關於類的方法 不是類方法 ,類方法指標

2022-08-01 21:27:09 字數 1096 閱讀 2948

關於類的方法(不是類方法),類方法指標

關於類的方法: (不是類方法,這裡指object pascal中的靜態方法,相當於c++的成員函式)

1: 帶有隱含引數 self

2: 方法是方法,資料是資料。

3:delphi的方法是乙個結構

type

tmethod = record

code: pointer; //方法的入口位址

data: pointer; //類例項指標(self引數)

end;

我們呼叫類的方法,其實分為2個部分,

1:呼叫方法的**,通過類來獲得方法入口位址。

2:訪問物件的資料(也可能不訪問),通過類的方法的那個隱含引數self來訪問。

我做了乙個測試:

tmyobject = class

private

fname: string;

public

procedure changename(aname: string);

procedure showprivate;

end;

procedure tmyobject.changename(aname: string);

begin

fname := aname; //修改私有變數

showmessage(

'my name is to be changed to ' + aname);

end;

procedure tmyobject.showprivate;

begin

showmessage(

'my name is ' + fname);

end;

procedure tform1.button1click(sender: tobject);

type

tcallfun = procedure(aname: string) of object;

vare: tmyobject;

m: tmethod;

begin

e := tmyobject.create;

m.code := @tmyobject.changename; 

類的類方法

類方法 說明 1提通過類名進行呼叫 2定義時需要使用裝飾器classmethod 作用 1可以建立物件或者簡潔的建立物件 2可以對外提供簡單易用的介面 靜態方法 說明 1通過裝飾器staticmethod修飾 2通過類名進行呼叫 總結 1凡是靜態方法能夠解決的問題類方法都能解決 2若方法中沒有涉及類...

關於類和方法

對於初學python,對類和方法的理解絕對讓很多人崩潰了。特別是裡面的self,簡直莫名其妙。但python簡明教程裡面對這段內容其實講解的非常清楚。類和物件是物件導向程式設計的兩個主要方面。類建立乙個新型別,而物件這個類的 例項 這類似於你有乙個int型別的變數,這儲存整數的變數是int類的例項 ...

關於類的成員方法

在c 中,乙個類會有很多的成員方法,可以分為三類 1 public 公有的,可供使用者呼叫 2 private 私有的,供成員方法自己呼叫 3 protected 在類的繼承中體現 而所有的成員方法除此之外有著不同的屬性,比如有些用於更改屬性,有些用於讀取某個屬性的量,來看看他們的不同以及c 標準對...