Compiler construction 抽象基类和数据成员?它是如何工作的?

Compiler construction 抽象基类和数据成员?它是如何工作的?,compiler-construction,abstract-class,Compiler Construction,Abstract Class,抽象基类(ABC)可以有数据来支持从它继承的类。 但是,如果无法实例化ABC的对象,那么对于有许多派生类对象的情况,编译器如何处理这些数据 继承ABC。数据是否与派生类对象关联 是的 编译器只能接受已使用派生的实体类实例化的继承类型。这是因为 public void RunInstantiate() { IAbstract abc; abc = new Implement(); } abc将始终指向真实对象(类型为Implement)。如果您谈论的是静态数据,那么该数据将与基

抽象基类(ABC)可以有数据来支持从它继承的类。 但是,如果无法实例化ABC的对象,那么对于有许多派生类对象的情况,编译器如何处理这些数据 继承ABC。数据是否与派生类对象关联

是的

编译器只能接受已使用派生的实体类实例化的继承类型。这是因为

public void RunInstantiate()
{
   IAbstract abc;
   abc = new Implement();   
}

abc
将始终指向真实对象(类型为
Implement
)。

如果您谈论的是静态数据,那么该数据将与基类保持关联。无论从中派生多少不同的类,内存中仍然只有该数据的一个实例


非静态数据将与该类的每个实例相关联。如果创建该类的5个实例,则内存中将有该数据的5个实例,每个都只能通过其关联实例访问。

因此ABC中声明的非静态数据与派生类的每个实例关联?您所说的关联是什么意思?我想我试图理解的是,如果无法创建ABC的实例,编译器如何处理非静态类的不同实例ABC数据?这不是一个“家庭作业问题”,只是一些困扰我的问题