Class-Inheritancing Error

David T. Oxygen TKC847567 at outlook.com
Tue Jul 29 01:06:44 UTC 2025


On Monday, 28 July 2025 at 18:02:45 UTC, H. S. Teoh wrote:
> On Sun, Jul 27, 2025 at 05:02:35PM +0000, user1234 via 
> Digitalmars-d-learn wrote: [...]
>> 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
>
> Oh I see.  So just write a forwarding ctor:
>
> ```
> class Someone : Person {
> 	this(string name) { super(name); }
> 	...
> }
> ```
>
> Or use the mixin template I wrote in the other thread to 
> auto-generate forwarding ctors, if you have many subclasses 
> that need forwarding.
>
>
> T
Thank you very much.
As "user1234" said, I just wanted to inheritance the constructor 
method in the baseclass.
I have already tried your way to solve the problem,it could work. 
But I still want to know why my code could raise an error.And 
what's your mixin-template? Would you be so kind to show me this 
template? I would be grateful if you can share it.



More information about the Digitalmars-d-learn mailing list