Class-Inheritancing Error
user1234
user1234 at 12.de
Sun Jul 27 17:02:35 UTC 2025
On Sunday, 27 July 2025 at 15:14:03 UTC, H. S. Teoh wrote:
> On Sun, Jul 27, 2025 at 11:08:33AM +0000, David T. Oxygen via
> Digitalmars-d-learn wrote:
>> I wrote a piece of code like this:
>>
>> ```d
>> class Person{
>> string name;
>> this(string name){this.name=name;}
>> }
>> class Someone:Person{
>> alias super this;
>> }
>> void main(){
>> Someone x=new Someone("Bob");
>> }
>> ```
>> And then,I got a Error-Message:
>> ```
>> ab.d(6): Error: variable name expected after type `super`, not
>> `this`
>> alias super this;
>> ^
>> ab.d(6): `this` is a keyword, perhaps append `_` to
>> make it an
>> identifier
>>
>> ```
>> Who knows why I can't use `alias this` there? Please tell
>> me,thanks
>> very much. I'm waiting for you.
>
> Can you explain more why do you want to alias super to this? A
> derived class already inherits its base class's members,
> there's no need to explicitly alias it.
>
>
> T
Simply because because if OP writes
```
class Person{
string name;
this(string name){this.name=name;}
}
class Someone:Person{
}
void main(){
Someone x=new Someone("Bob");
}
```
then he gets rewarded with
> Error: class `Someone` cannot implicitly generate a default
> constructor when base class `Person` is missing a default
> constructor
More information about the Digitalmars-d-learn
mailing list