how to make new C return other static type than C
deed
none at none.none
Sun Dec 9 10:23:14 PST 2012
interface I
{
void setX(int x);
int getX();
}
class C : I
{
int x, y;
void setX(int x) { this.x = x; }
int getX() { return x; }
void setY(int y) { this.y = y }
int getY() { return y; }
}
void main()
{
auto obj = new C; // Want new C to instantiate obj with
static type I.
obj.setX(3); // Ok, sets x to 3.
obj.getY(); // Error, not specified in the interface.
}
- Is it possible to enforce, from within the class, a certain
static interface type or ancestor type when instantiating with
new? If so, how is it done?
- Also, is it possible for a class to implement multiple
interfaces and choose static type among them when instantiated,
based on static class state or arguments passed to the
constructor?
More information about the Digitalmars-d-learn
mailing list