如何测试if a是否为子类b?
Class<?> a = A.class;
Class<?> b = B.class;
Run Code Online (Sandbox Code Playgroud) struct A {
void f(int x) {}
};
struct B {
template<typename T> void f(T x) {}
};
struct C : public A, public B {};
struct D {
void f(int x){}
template<typename T> void f(T x) {}
};
int main(int argc, char **argv) {
C c;
c.f<int>(3);
D d;
d.f<int>(3);
}
Run Code Online (Sandbox Code Playgroud)
呼叫d.f是好的原因是什么,但是c.f给出了
error: request for member ‘f’ is ambiguous
error: candidates are: template<class T> void B::f(T)
error: void A::f(int)
Run Code Online (Sandbox Code Playgroud) 当我检查从Eclipse中的接口派生的类的类型层次结构时,它不显示接口.有没有办法配置Eclipse以显示类型层次结构中的接口?或者还有其他方法可以查看此信息吗?
这就是全部,我想看看继承固定类的clases是什么.在RUBY中有一种方法吗?
Aptana提供了一个显示此选项的选项,但是有什么方法吗?
谢谢
我希望在C#中实现我的类层次结构的深度复制
public Class ParentObj : ICloneable
{
protected int myA;
public virtual Object Clone ()
{
ParentObj newObj = new ParentObj();
newObj.myA = theObj.MyA;
return newObj;
}
}
public Class ChildObj : ParentObj
{
protected int myB;
public override Object Clone ( )
{
Parent newObj = this.base.Clone();
newObj.myB = theObj.MyB;
return newObj;
}
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为克隆孩子只是父母是新的.在我的代码中,一些类具有大的层次结构.
这样做的推荐方法是什么?克隆每个级别的所有内容而不调用基类似乎是错误的?这个问题必须有一些巧妙的解决方案,它们是什么?
能否感谢大家的回答.看到一些方法真的很有趣.我认为如果有人举一个完整性的反思答案的例子会很好.+1等待!
有没有一种方法/工具可以显示我在项目中实现某个界面的所有类/接口?在Eclipse(Java)中,我将使用上下文菜单"Open Type Hierarchy"选项,它将显示一个(漂亮)类型的树,它扩展了所选类型.是否有工具在.NET中执行相同的操作?
我正在解决这个问题:
考虑以下类的层次结构:
Run Code Online (Sandbox Code Playgroud)class Person(object): def __init__(self, name): self.name = name def say(self, stuff): return self.name + ' says: ' + stuff def __str__(self): return self.name class Lecturer(Person): def lecture(self, stuff): return 'I believe that ' + Person.say(self, stuff) class Professor(Lecturer): def say(self, stuff): return self.name + ' says: ' + self.lecture(stuff) class ArrogantProfessor(Professor): def say(self, stuff): return 'It is obvious that ' + self.say(stuff)如上所述,当使用Arrogant Professor类时,此代码会导致无限循环.
更改ArrogantProfessor的定义,以便实现以下行为:
Run Code Online (Sandbox Code Playgroud)e = Person('eric') le = Lecturer('eric') pe = Professor('eric') ae = ArrogantProfessor('eric') e.say('the …
Matlab函数superclasses返回给定类的所有父项的名称.
是否有相当于找到从给定类派生的所有类,即子类?该函数allchild似乎仅限于图形句柄.
如果没有,可以采取什么策略来获得这样的清单?蛮力路径扫描是唯一的选择吗?
让我们把自己局限于Matlab路径中的类.
我有两个相关的类,它们共享一个公共接口,并且都存储在同一个底层数据库表中.但是,实体框架生成一个公共类,我真的需要两个不同的类.我该如何解决这个问题?最好使用基类而不是接口吗?如何更改EF模型以提供映射到一个表的两个类?
编辑: AccountType属性确定类的类型; 用户或组.
一些简单的代码:
public interface IAccount
{
string Name { get; set; }
AccountType AccountType { get; set; }
}
public class GroupAccount : IAccount
{
public string Name { get; set; }
public GroupType GroupType { get; set; }
public AccountType AccountType { get; set; }
}
public class UserAccount : IAccount
{
public string Username { get; set; }
public string Password { get; set; }
public string Name { get; set; }
public AccountType AccountType …Run Code Online (Sandbox Code Playgroud) 我从事一个相对复杂的Java项目,其中类之前通常有四个或五个祖先Object.给定这样的类,例如D在这样的层次结构中:Object > A > B > C > D,我想知道它有效实现的所有接口.也就是说,我也有兴趣看到这些D实现,Serializable即使它只在类的声明中声明,B甚至D实际上没有实现接口指定的任何方法(当然,如果谈论Serializable).
我尝试过的这些信息的一些潜在来源包括:
有没有办法在IDEA中获取此信息而无需打开相关类的所有祖先类的文件?
class-hierarchy ×10
java ×3
.net ×2
c# ×2
interface ×2
oop ×2
subclass ×2
c++ ×1
class ×1
clone ×1
eclipse ×1
hierarchy ×1
instanceof ×1
matlab ×1
python ×1
python-2.7 ×1
ruby ×1
superclass ×1
templates ×1