2017-09-08 11 views

答えて

7
import typetraits 

type 
    Person = ref object of RootObj 
    name*: string 
    age: int 

    Student = ref object of Person # a student is a person 
    id: int 

method sayHi(p: Person) {.base.} = 
    echo "I'm a person" 

method sayHi(s: Student) = 
    echo "I'm a student" 

var student = Student(name: "Peter", age: 30, id: 10) 
var person: Person = student # valid assignment to base type 
echo person.repr # contains id as well 
echo name(person.type) # static type = Person 
person.sayHi() # dynamic type = I'm a student 
関連する問題