vbs 乙個簡單的棧 只能儲存類物件

2022-06-19 15:27:10 字數 1823 閱讀 8877

'

----------------------------堆疊-------------------------------------

const max_stack = 1024

class

mystack

private int_top '

宣告變數top

private int_bottom '

宣告變數now

private strstack(1024) '

宣告堆陣列

'initialize 構建函式

private

subclass_initialize

top = 0

bottom = 0

end sub

'定義屬性的獲取和設定,如果設定為 private 則需要這樣來獲取與賦值

public

property

get top '

獲取 top =int_top

end property

public

property let top(strvar) '

設定 int_top =strvar

end property

public

property

getbottom

bottom =int_bottom

end property

public

property

let bottom(strvar)

int_bottom =strvar

end property

private

property

getstack(i) ' 初學對什麼時候用set有點亂...

set stack =strstack(i)

end property

private

property

let stack(i,strvar)

set strstack(i) =strvar

end property

private

property

getstacks

stacks =strstack

end property

'類方法

public

subpush(temp)

if top < max_stack then

stack(top) =temp

top = top + 1

else

wscript.echo

"push(temp):stack gone max......

"end

ifend sub

public

function

pop()

if top > bottom then

set pop = stack(top-1

) top = top -1

else

pop = 0

wscript.echo

"pop():stack gone bug......

"end

ifend function

public

function

count()

count = top -bottom

end function

end class

'----------------------------堆疊-------------------------------------

設計乙個類,只能在棧上建立物件

設計乙個類,只能在棧上建立物件 思考的幾個要點 1 只能在棧,說明不能在堆上建立,考慮堆上建立物件的兩種方法 new和定位new表示式,原理 先呼叫operator new開空間,然後執行建構函式 所以遮蔽掉operator new 即放成私有 這樣就排斥了直接new和定位new表示式 注意 上面的...

定義乙個只能在棧上構造物件的類

只能在堆上定義的物件可以通過宣告建構函式是私有的,然後提供兩個靜態的方法,乙個方法用來獲取堆上的物件,乙個用來釋放堆上的物件。c 中定義乙個不能被繼承的類中第二種方法就是通過這種方式宣告了乙個不能被繼承的類,但是這個類的物件就只能位於堆中了。那麼如何一定乙個只能在棧上構造的物件?這個就涉及到了c 中...

設計乙個只能在堆上或棧上的類

一道c 筆試題 設計乙個只能在堆記憶體上例項化的類和乙個只能在棧記憶體上例項化的類 只能在堆記憶體上例項化的類 將析構函式定義為private,在棧上不能自動呼叫析構函式,只能手動呼叫。也可以將建構函式定義為private,但這樣需要手動寫乙個函式實現物件的構造。只能在棧記憶體上例項化的類 將函式o...