www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Abstract functions with bodies

reply Ary Manzana <ary esperanto.org.ar> writes:
While porting DMD code to Java I noticed that error reporting for 
abstract functions with bodies is disables. The following code gives no 
errors:

class X {

	abstract int bla() {
		return 1;
	}

}

Why is the error reporting silenced for this (in 
FuncDeclaration::semantic )?

Ary
Mar 18 2007
parent reply Tom <tom nospam.com> writes:
Ary Manzana escribió:
 While porting DMD code to Java I noticed that error reporting for 
 abstract functions with bodies is disables. The following code gives no 
 errors:
 
 class X {
 
     abstract int bla() {
         return 1;
     }
 
 }
 
 Why is the error reporting silenced for this (in 
 FuncDeclaration::semantic )?
 
 Ary

Right from the docs (http://www.digitalmars.com/d/attribute.html#abstract): "Functions declared as abstract can still have function bodies. This is so that even though they must be overridden, they can still provide 'base class functionality.'" Regards, -- Tom;
Mar 18 2007
parent Ary Manzana <ary esperanto.org.ar> writes:
Tom escribió:
 Ary Manzana escribió:
 While porting DMD code to Java I noticed that error reporting for 
 abstract functions with bodies is disables. The following code gives 
 no errors:

 class X {

     abstract int bla() {
         return 1;
     }

 }

 Why is the error reporting silenced for this (in 
 FuncDeclaration::semantic )?

 Ary

Right from the docs (http://www.digitalmars.com/d/attribute.html#abstract): "Functions declared as abstract can still have function bodies. This is so that even though they must be overridden, they can still provide 'base class functionality.'" Regards, -- Tom;

I never thought of that, but it pretty useful. Great! :-) Thanks, Ary
Mar 19 2007