Is there a keyword to access the base class
Steven Schveighoffer
schveiguy at yahoo.com
Tue Jun 18 15:54:32 PDT 2013
On Tue, 18 Jun 2013 18:10:49 -0400, Stephen Jones <siwenjo at gmail.com>
wrote:
> I know I can cast, but how do I know what base class each b in the
> foreach loop is?
Just an FYI, you are using the wrong terminology. In this case, Bar is
the base class, and Foo and Foos are the *derived* classes.
Other than that, I think Ali gave you the best solution.
If you wanted to do something that *wasn't* common between two derived
classes (i.e. some function/member that was only on one specific derived
class), you can use a nice technique called auto-casting:
if(auto der = cast(Foo)b)
{
// use Foo specific functionality on der
}
else if (auto der = cast(Foos)b)
{
// use Foos specific functionality on der
}
Hm... would be a nice idiom to implement generically in D. Like a type
switch.
-Steve
More information about the Digitalmars-d-learn
mailing list