如何测试Qore对象是否从特定类继承

时间:2017-09-17 12:58:27

标签: qore

当我有更多的课程时,我如何测试实例是否来自一个类?

class a {
};
class b inherits a {
};
class c inherits b {
};


a B = new b();
a C = new c();
assert ((B is instance_of b) == (C is instance_of b))

丑陋的黑客正在测试 B.className ==' b' ' C' 是错误的。我找不到运营商。

1 个答案:

答案 0 :(得分:3)

使用instanceof运算符:

class A {
}
class B inherits A {
}
class C inherits B {
}

A a();
B b();
C c();

printf("%y %y %y\n", a instanceof B, b instanceof B, c instanceof C);

打印:False True True

(上面的代码基于您的代码,但遵循Qore的标准naming conventions,并且还针对语法错误进行了更正)