Home

TclOO

Tcl Object Oriented Programming
詳しい説明は他のサイトのページを参照。
	package require TclOO

	oo::class create CA {
		variable m_name
		
		constructor args {
			set m_name "No name"
			
			# 自オブジェクトの変数を指定する
			pack [label .e -textvariable [my varname m_name]]
		}
		
		destructor {
		}
		
		# メソッドは小文字で始まるとpublic扱い
		method name { name args } {
			if {[llength $args] > 0} {
				set m_name [lindex $args 0]
				
				# 自クラスのメソッドを呼び出す場合は、[self]を指定
				[self] update
			}
			return $m_name
		}
		
		method update { } {
			# update
		}
	}

	oo::class create CB {
		# 継承
		superclass CA
		
		# 継承元から使いたい変数を定義
		variable m_name
	}

	# オブジェクト作成
	set obj [CB new]