On Mon, 5 Jul 2010 15:48:40 -0300
Marcos Douglas <[email protected]> wrote:
Questions of style: just a personal opinion.
> We can to use methods of an object to create others objects, or this
> is a bad programming practice?
> eg:
> var
> obj1, obj2: TmyObject;
> begin
> obj1 := tobj1.create; //ok
> obj2 := obj1.createObj; // is this recommended?
> try
> //...
> finally
> obj1.free;
> obj2.free;
> end;
> end;
How else can one program using object orientation?
VAR
t1, t2 : Text ;
BEGIN
t1 := Text('abcdefghi') ;
t2 := t1.section(3,7) ;
t2.write ; // 'cdefg', if I'm right ;-)
END
Or do you mean to copy a (referenced) object?
> Why I ask this:
> If not exists the variable obj2 in call obj1.createObj will happen a
> memory leak, right? Because there is not variable to release.
Do you mean using a function as a statement? (for its so-called "side effect")
*This*, in my opinion, is very bad programming practice. But it's just an
opinion.
First, a function that has effects is already bad, except for recording data on
the object (eg metadata, or memoization). Second, if you really want it to *do*
something in addition to *making* its return value, you should make this
"anomaly" obvious by writing the effect in an external proc (called by the
func). So that, when you need the effect but not the value, just call the proc.
> Marcos Douglas
Denis
________________________________
vit esse estrany ☣
spir.wikidot.com
_______________________________________________
fpc-pascal maillist - [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal