'----------------------------堆疊-------------------------------------
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...