關於類的方法(不是類方法),類方法指標
關於類的方法: (不是類方法,這裡指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 標準對...