m***j 发帖数: 9290 | 1 有一个CLASS A,他有一个SUB CLASS B,B又有两个SUB CLASS C和D。
现在我有一个B的INSTANCE,要求如果是B或者D就做一件事,否则不做。
我的想法是可以用DYNAMIC CAST看是不是D,但是怎么知道到底是不是B呢? |
x*****p 发帖数: 1707 | 2 In Java, you can use instanceof keyword to check whether the instance is a D
, then do downcasting if it is.
In C++, it should provide a similar way to do it. |
b**a 发帖数: 62 | 3 用virtual function?
【在 m***j 的大作中提到】 : 有一个CLASS A,他有一个SUB CLASS B,B又有两个SUB CLASS C和D。 : 现在我有一个B的INSTANCE,要求如果是B或者D就做一件事,否则不做。 : 我的想法是可以用DYNAMIC CAST看是不是D,但是怎么知道到底是不是B呢?
|
s*********t 发帖数: 1663 | 4 1. B里定义virtual f(),C里覆盖掉,D不覆盖
2. 多设立一个变量指明这是什么class
【在 m***j 的大作中提到】 : 有一个CLASS A,他有一个SUB CLASS B,B又有两个SUB CLASS C和D。 : 现在我有一个B的INSTANCE,要求如果是B或者D就做一件事,否则不做。 : 我的想法是可以用DYNAMIC CAST看是不是D,但是怎么知道到底是不是B呢?
|
l*****a 发帖数: 559 | |
f*****y 发帖数: 444 | 6 use virtual function, do nothing in A and C. |