comp.lang.ada
 help / color / mirror / Atom feed
* newbie - OOP in Ada Set and Get Methods
@ 2004-12-28 12:41 R
  2004-12-28 13:36 ` Jeff C r e e.m
  2004-12-28 13:39 ` Martin Krischik
  0 siblings, 2 replies; 18+ messages in thread
From: R @ 2004-12-28 12:41 UTC (permalink / raw)


Hello.

I'm new to Ada95. I was trying to create on 'object' in Ada with Set
and Get methods.

But I failed...

I'm not sure whether or not my thinking in Ada is proper - Ada verries
a lot from C++ and Java OOP...

My codes are below

thanks in advance

best regards R

main.db unit:

with Text_IO;
use Text_IO;
with testclass;
procedure Main is
T: testclass.rec1;
begin
T.Set(5);
Put_Line(Integer'Image(T.Get));
end Main;

testclass.ads:
package testclass is

type rec1 is tagged null record; --is abstract

field: Integer;

function Set(s: Integer) return Integer;
function Get return Integer;

end testclass;

and testclass.adb
package body testclass is
function Set(s: Integer) return Integer is
begin
field := s;
return field;
end Set;

function Get return Integer is
begin
		return field;
	end Get;

end testclass;




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: newbie - OOP in Ada Set and Get Methods
  2004-12-28 12:41 newbie - OOP in Ada Set and Get Methods R
@ 2004-12-28 13:36 ` Jeff C r e e.m
  2004-12-28 16:26   ` R
  2004-12-28 13:39 ` Martin Krischik
  1 sibling, 1 reply; 18+ messages in thread
From: Jeff C r e e.m @ 2004-12-28 13:36 UTC (permalink / raw)


You probably need to step back and read a few of the Ada tutorials rather 
than trying to hack-and-whack
C++ in Ada.

First, I hate to plug this website because it is old and unmaintained and 
should be shutdown....But this
tutorial is short and is a very good starting point

http://www.adahome.com/Ammo/cpp2ada.html


A few tips to think about

1) Packages are closer to namespaces than classes.
    Your "field" variable is essentially just a stand alone 'global' value 
that is in no way tied to your class

2) Tagged records are closer to "classes"

3) There is no "this" in Ada so if you want an object to be visible within a 
subprogram it needs to be a parameter.

4) There is no special notation for OO calls v.s. non-OO calls in Ada and 
therefore (currently) you do not call a subprogram
    with object.method style but rather package.subprogram just as you would 
do for non-OO code. Ada 2005 will (probably)
    be adding object.method mostly because it really seems to be a hard 
thing for people from other programming lanaguages
    to swallow (my opinion. I have not seen any really strong technical 
argument for the feature..but perhaps there is one)


After reading a few of the articles at adahome, you can ignore it and start 
using www.adapower.com
and www.adaworld.com which are actually up to date.






^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: newbie - OOP in Ada Set and Get Methods
  2004-12-28 12:41 newbie - OOP in Ada Set and Get Methods R
  2004-12-28 13:36 ` Jeff C r e e.m
@ 2004-12-28 13:39 ` Martin Krischik
  1 sibling, 0 replies; 18+ messages in thread
From: Martin Krischik @ 2004-12-28 13:39 UTC (permalink / raw)


R wrote:

> Hello.
> 
> I'm new to Ada95. I was trying to create on 'object' in Ada with Set
> and Get methods.
> 
> But I failed...
> 
> I'm not sure whether or not my thinking in Ada is proper - Ada verries
> a lot from C++ and Java OOP...
> 
> My codes are below
> 
> thanks in advance
> 
> best regards R
> 
> main.db unit:
> 
> with Text_IO;
> use Text_IO;
> with testclass;
> procedure Main is
> T: testclass.rec1;
> begin
> T.Set(5);
> Put_Line(Integer'Image(T.Get));
> end Main;
> 
> testclass.ads:
> package testclass is
> 
> type rec1 is tagged null record; --is abstract

If you want an abstract class you should say so:

type rec1 is abstract tagged null record:

Of corse when testclass is abstract then you need a non abstract
testclass_2 :-). So maybe you don't want an abstract class after all.

> field: Integer;

field should be part of record "rec1" otherwise it is "static" to use C++
talk!

> function Set(s: Integer) return Integer;
> function Get return Integer;

function Set(s: Integer) return Integer is abstract;
function Get return Integer is abstract;

> 
> end testclass;
> 
> and testclass.adb
> package body testclass is
> function Set(s: Integer) return Integer is
> begin
> field := s;
> return field;
> end Set;
> 
> function Get return Integer is
> begin
> return field;
> end Get;

> end testclass;

Where did you actualy fail?

Suggested Reading:

http://en.wikibooks.org/wiki/Programming:Ada:OO
http://en.wikibooks.org/wiki/Programming:Ada:Types:record

With Regards

Martin
-- 
mailto://krischik@users.sourceforge.net
http://www.ada.krischik.com



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: newbie - OOP in Ada Set and Get Methods
  2004-12-28 13:36 ` Jeff C r e e.m
@ 2004-12-28 16:26   ` R
  2004-12-28 17:01     ` Jeff C r e e.m
  2004-12-28 17:20     ` Martin Dowie
  0 siblings, 2 replies; 18+ messages in thread
From: R @ 2004-12-28 16:26 UTC (permalink / raw)


Jeff C r e e.m wrote:
> A few tips to think about
>
> 1) Packages are closer to namespaces than classes.
>     Your "field" variable is essentially just a stand alone 'global'
value
> that is in no way tied to your class
>
> 2) Tagged records are closer to "classes"

so if my class has 7 varaibles(3 of them are dynamically allocated
arrays) they should be all included inside tagged record?

That means that when im creating an object I have to pass as parameters
all
the variables?

> 3) There is no "this" in Ada so if you want an object to be visible
within a
> subprogram it needs to be a parameter.

thanks, I didn't know that

And one more thing about the tutorial which You said should be
shutdown.

It's written there that there is no such thing as contructor.
You'll have to define this function yourself.

so if I want create an object you should write sth like this:
object : testclass.rec1_Type := testclass.Create(10);

how should Create body look like?

rec1_Type is access to rec1 defined as tagged record with one variable
'field'.

when I wrote(package testclass):

function Create(s: Integer) return rec1_Type is
begin
return testclass.rec1_Type(field=>s);
end Create;

gnatmake gave me an error:

$ gnatmake main.adb
gcc -c testclass.adb
testclass.adb:5:33: invalid prefix in call
gnatmake: "testclass.adb" compilation error

where 5th line points to the return statement:
return testclass.rec1_Type(field=>s);
what am I doing wrong?

sorry... I'm just a Ada newbie

best regards R




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: newbie - OOP in Ada Set and Get Methods
  2004-12-28 16:26   ` R
@ 2004-12-28 17:01     ` Jeff C r e e.m
  2004-12-28 17:30       ` R
  2004-12-28 17:20     ` Martin Dowie
  1 sibling, 1 reply; 18+ messages in thread
From: Jeff C r e e.m @ 2004-12-28 17:01 UTC (permalink / raw)



"R" <ruthless@poczta.onet.pl> wrote in message 
news:1104251213.061878.187430@f14g2000cwb.googlegroups.com...
> Jeff C r e e.m wrote:
>> A few tips to think about
>>
>> 1) Packages are closer to namespaces than classes.
>>     Your "field" variable is essentially just a stand alone 'global'
> value
>> that is in no way tied to your class
>>
>> 2) Tagged records are closer to "classes"
>
> so if my class has 7 varaibles(3 of them are dynamically allocated
> arrays) they should be all included inside tagged record?

In one way or another yes. Perhaps only in the private section of the 
package or in some
cases by declaring an incomplete pointer to the remaining structure and then 
filling out the
rest in the body.

>
> That means that when im creating an object I have to pass as parameters
> all
> the variables?


I don't really follow that question.

>
>> 3) There is no "this" in Ada so if you want an object to be visible
> within a
>> subprogram it needs to be a parameter.
>
> thanks, I didn't know that
>
> And one more thing about the tutorial which You said should be
> shutdown.
>
> It's written there that there is no such thing as contructor.
> You'll have to define this function yourself.
>
> so if I want create an object you should write sth like this:
> object : testclass.rec1_Type := testclass.Create(10);
>
> how should Create body look like?

It is not possible for anyone to answer this question since we don't know 
what you
are trying to accomplish.  This sample code is too basic to really put any 
"design" thought into but
for something that compiles.




begin 666 testclass.ads
M<&%C:V%G92!T97-T8VQA<W,@:7,-"@T*("!T>7!E(')E8S$@:7,@=&%G9V5D
M( T*(" @("!R96-O<F0@#0H@(" @(" @($9I96QD(#H@26YT96=E<CL@( T*
M(" @("!E;F0@<F5C;W)D.R -"@T*("!F=6YC=&EO;B!#<F5A=&4@* T*(" @
M(" @("!3(#H@:6X@(" @($EN=&5G97(@*2 -"B @("!R971U<FX@4F5C,3L@
M#0H-"B @<')O8V5D=7)E(%-E=" H#0H@(" @(" @(%(@.B!I;B!O=70@4F5C
M,3L@(" -"B @(" @(" @<R Z(" @(" @("!);G1E9V5R("D[( T*#0H@(&9U
M;F-T:6]N($=E=" H#0H@(" @(" @(%(@.B!I;B @(" @4F5C,2 I( T*(" @
G(')E='5R;B!);G1E9V5R.R -"@T*96YD('1E<W1C;&%S<SL-"@T*
`
end

begin 666 testclass.adb
M<&%C:V%G92!B;V1Y('1E<W1C;&%S<R!I<PT*#0H@("TM+2TM+2TM+2TM+0T*
M(" M+2!#<F5A=&4@+2T-"B @+2TM+2TM+2TM+2TM#0H-"B @9G5N8W1I;VX@
M0W)E871E#0H@(" H4R Z(&EN(" @("!);G1E9V5R*0T*(" @(')E='5R;B!2
M96,Q#0H@(&ES#0H@(&)E9VEN#0H@(" @<F5T=7)N(%)E8S$G*$9I96QD(#T^
M(%,I.PT*(" @("TM($%L<V\@;F]T92!W92!C;W5L9"!H879E('5S960@<F5T
M=7)N(%)E8S$G*$9I96QD(#T^(%,I.PT*(" @("TM(%1H:7,@=V]U;&0@8F4@
M;F5E9&5D(&EF('=E(&YE961E9"!T;R!H:6YT('1O('1H92!C;VUP:6QE<@T*
M(" @("TM(&5X86-T;'D@=VAA="!T>7!E('=E('=E<F4@=')Y:6YG('1O(&-R
M96%T92!H97)E+B!);B!T:&ES#0H@(" @+2T@8V%S92!T:&5R92!I<R!N;R!A
M;6)I9W5I='DN#0H@(&5N9"!#<F5A=&4[#0H-"B @+2TM+2TM+2TM#0H@("TM
M(%-E=" M+0T*(" M+2TM+2TM+2T-"@T*("!P<F]C961U<F4@4V5T#0H@(" H
M4B Z(&EN(&]U="!296,Q.PT*(" @(',@.B @(" @(" @26YT96=E<BD-"B @
M:7,-"B @8F5G:6X-"B @("!2+D9I96QD(#H](%,[#0H@(&5N9"!3970[#0H-
M"B @+2TM+2TM+2TM#0H@("TM($=E=" M+0T*(" M+2TM+2TM+2T-"@T*("!F
M=6YC=&EO;B!'970-"B @("A2(#H@:6X@(" @(%)E8S$I#0H@(" @<F5T=7)N
M($EN=&5G97(-"B @:7,-"B @8F5G:6X-"B @("!2971U<FX@4BY&:65L9#L-
?"B @96YD($=E=#L-"@T*96YD('1E<W1C;&%S<SL-"@``
`
end




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: newbie - OOP in Ada Set and Get Methods
  2004-12-28 16:26   ` R
  2004-12-28 17:01     ` Jeff C r e e.m
@ 2004-12-28 17:20     ` Martin Dowie
  2004-12-28 17:36       ` R
  1 sibling, 1 reply; 18+ messages in thread
From: Martin Dowie @ 2004-12-28 17:20 UTC (permalink / raw)


R wrote:
> rec1_Type is access to rec1 defined as tagged record with one variable
> 'field'.

Why are you using an access type?



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: newbie - OOP in Ada Set and Get Methods
  2004-12-28 17:01     ` Jeff C r e e.m
@ 2004-12-28 17:30       ` R
  0 siblings, 0 replies; 18+ messages in thread
From: R @ 2004-12-28 17:30 UTC (permalink / raw)



Jeff C r e e.m wrote:
> It is not possible for anyone to answer this question since we don't
know
> what you
> are trying to accomplish.

I'm only trying to write a constructor.
Package testclass.
testclass.Create is meant to be my constructor

given main unit:

with Text_IO;
use Text_IO;
with testclass; -- include testclass package

procedure Main is
object : testclass.rec1_Type := testclass.Create(10);
begin
Put_Line(Integer'Image(testclass.Get(object)));
end Main;

testclass specyfication:

package testclass is
type rec1 is tagged private;

type rec1_Type is access rec1;

function Create(s: Integer) return rec1_Type;
function Set(this: rec1_Type; s: Integer) return Integer;
function Get(this: rec1_Type) return Integer;

private
type rec1 is tagged record
field: Integer;
end record;
end testclass;

testclass body:

package body testclass is

function Create(s: Integer) return rec1_Type is
begin
return testclass.rec1_Type(field=>s);
end Create;

function Set(this: rec1_Type; s: Integer) return Integer is
begin
this.field := s;
return this.field;
end Set;

function Get(this: rec1_Type) return Integer is
begin
return this.field;
end Get;

end testclass;

during compilation gnatmake points an error to:

return testclass.rec1_Type(field=>s);

$ gcc -c testclass.adb
testclass.adb:5:33: invalid prefix in call
gnatmake: "testclass.adb" compilation error
(the 5th line of testclass is return statement)


and I don't know how to write this constructor to return the access
type rec1_Type to rec1
hope it helps to help me ;-)

thanks in advance

best regards
R




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: newbie - OOP in Ada Set and Get Methods
  2004-12-28 17:20     ` Martin Dowie
@ 2004-12-28 17:36       ` R
  2004-12-28 19:47         ` Mark Lorenzen
                           ` (4 more replies)
  0 siblings, 5 replies; 18+ messages in thread
From: R @ 2004-12-28 17:36 UTC (permalink / raw)


because all OOP languages uses references to pass the objects as
parameters...

it will be needed in my program ;-)

best regrads R




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: newbie - OOP in Ada Set and Get Methods
  2004-12-28 17:36       ` R
@ 2004-12-28 19:47         ` Mark Lorenzen
  2004-12-28 19:48         ` Adrien Plisson
                           ` (3 subsequent siblings)
  4 siblings, 0 replies; 18+ messages in thread
From: Mark Lorenzen @ 2004-12-28 19:47 UTC (permalink / raw)


"R" <ruthless@poczta.onet.pl> writes:

> because all OOP languages uses references to pass the objects as
> parameters...

Exactly... but what does that have to do with access types? In Ada,
tagged types are automatically passed by reference, so you do not need
to fiddle around with pointers.

> 
> it will be needed in my program ;-)
> 
> best regrads R

- Mark Lorenzen



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: newbie - OOP in Ada Set and Get Methods
  2004-12-28 17:36       ` R
  2004-12-28 19:47         ` Mark Lorenzen
@ 2004-12-28 19:48         ` Adrien Plisson
  2004-12-28 19:58         ` Georg Bauhaus
                           ` (2 subsequent siblings)
  4 siblings, 0 replies; 18+ messages in thread
From: Adrien Plisson @ 2004-12-28 19:48 UTC (permalink / raw)


R wrote:
> because all OOP languages uses references to pass the objects as
> parameters...
> 
> it will be needed in my program ;-)

oulalalalala... stop !!!

you seems more trying to hack Ada from C++/Java then really trying to 
learn Ada.

my advice would be: buy some good book on ada or read one online (see 
http://www.adapower.com/ section "books and tutorials" for references)

in ada you can pass parameters in 4 ways, by specifying a mode for 
parameters: in, out, in out, access... you don't need an access type to 
pass a parameter by reference, and you don't really need to worry about 
passing by reference or other if you understand all the parameter modes.

as pointed in an earlier reply, an Ada package in equivalent to a C++ 
namespace. in C++ you define an object and all methods related to this 
object in the same construction (namely a "class"). in Ada you define an 
object by defining a tagged record and a set of procedures/functions 
related to this tagged record. we group the tagged type and the methods 
in a package for clarity (but we can define as many object/methods as we 
want in the same package).

if your C++/Java class has 7 variable members ("fields"), then you 
declare a tagged record containing 7 fields, not seven records... this 
way you pass to your methods 1 parameter of the type of your tagged record.

btw, why are you trying to write this in Ada ? what is your goal ?

-- 
rien




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: newbie - OOP in Ada Set and Get Methods
  2004-12-28 17:36       ` R
  2004-12-28 19:47         ` Mark Lorenzen
  2004-12-28 19:48         ` Adrien Plisson
@ 2004-12-28 19:58         ` Georg Bauhaus
  2004-12-28 21:17         ` Martin Dowie
  2004-12-29 19:11         ` Martin Krischik
  4 siblings, 0 replies; 18+ messages in thread
From: Georg Bauhaus @ 2004-12-28 19:58 UTC (permalink / raw)


R <ruthless@poczta.onet.pl> wrote:
: because all OOP languages uses references to pass the objects as
: parameters...

Ada may or may not use references depending on what kind of
value a subprogram parameter takes. But for tagged types, passing
values is always by reference, no need for an explicit pointer.

Object construction is slightly different in Ada, I think.
The function approach is one way to do it.
I liked this discussion:
http://www.cmis.brighton.ac.uk/staff/je/adacraft/ch14.htm
http://www.cmis.brighton.ac.uk/staff/je/adacraft/ch15.htm

You can also use a constructor procedure.
For example,

package Test_Class is

   type Rec_1 is tagged
     record
       value: Integer;
     end record;

   procedure make(r: in out Rec_1; .......);
   -- initialises all components of `r`


   function get(r: Rec_1) return Integer;

   procedure set(r: in out Rec_1; v: Integer);

end Test_Class;


Then somewhere else in your program,

declare
   x: Rec_1;
begin
   make(x, .......);
   set(x, 5);
   get(x);
end;

You could also have automatic initialisation using
default values for the object's components,

   type Rec_1 is tagged record
     value: Integer := default_value;
   end record;

One more thing: Ada allows nesting blocks. So in many
cases, you can combine these techniques (and more).
Note that `default_value` can be a function.


-- Georg



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: newbie - OOP in Ada Set and Get Methods
  2004-12-28 17:36       ` R
                           ` (2 preceding siblings ...)
  2004-12-28 19:58         ` Georg Bauhaus
@ 2004-12-28 21:17         ` Martin Dowie
  2004-12-29 10:06           ` R
  2004-12-29 19:11         ` Martin Krischik
  4 siblings, 1 reply; 18+ messages in thread
From: Martin Dowie @ 2004-12-28 21:17 UTC (permalink / raw)


R wrote:
> because all OOP languages uses references to pass the objects as
> parameters...

Oh dear, no...

That's a might big assumption that 'all OOP languages' use references to 
pass objects - that's how it's implemented but there is (usually) no 
need in Ada for the programmer to get their hands dirty with such low 
level details!

Tagged types are guaranteed to be passed by reference (the cost of the 
tag alone makes this the obvious mechanism) and for other types the RM 
either dictates how it is done or lets the compiler select what's best. :-)

Cheers

-- Martin



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: newbie - OOP in Ada Set and Get Methods
  2004-12-28 21:17         ` Martin Dowie
@ 2004-12-29 10:06           ` R
  2004-12-29 12:33             ` Martin Dowie
                               ` (2 more replies)
  0 siblings, 3 replies; 18+ messages in thread
From: R @ 2004-12-29 10:06 UTC (permalink / raw)


my compiler gnatmake Linux
gave me warnings in this function:

function Set(this: rec1; s: Integer) return Integer is
begin
this.field := s;
return s;
end Set;

'in parameters cannot be modified inside function'(sth like this),
when I was using rec1_Typeas an access to rec1
this warning never occured

but finally i changed it to:
procedure Set(this: in out rec1; s: Integer) is
begin
this.field := s;
end Set;
and now it works fine - no warning

best regards R




^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: newbie - OOP in Ada Set and Get Methods
  2004-12-29 10:06           ` R
@ 2004-12-29 12:33             ` Martin Dowie
  2004-12-29 17:35             ` Georg Bauhaus
  2004-12-29 19:12             ` Martin Krischik
  2 siblings, 0 replies; 18+ messages in thread
From: Martin Dowie @ 2004-12-29 12:33 UTC (permalink / raw)


R wrote:
> my compiler gnatmake Linux
> gave me warnings in this function:
> 
> function Set(this: rec1; s: Integer) return Integer is
> begin
> this.field := s;
> return s;
> end Set;
> 
> 'in parameters cannot be modified inside function'(sth like this),
> when I was using rec1_Typeas an access to rec1
> this warning never occured

Remove 'rec1_Type' - you really don't need it in all probability.

Cheers

-- Martin



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: newbie - OOP in Ada Set and Get Methods
  2004-12-29 10:06           ` R
  2004-12-29 12:33             ` Martin Dowie
@ 2004-12-29 17:35             ` Georg Bauhaus
  2004-12-29 19:12             ` Martin Krischik
  2 siblings, 0 replies; 18+ messages in thread
From: Georg Bauhaus @ 2004-12-29 17:35 UTC (permalink / raw)


R <ruthless@poczta.onet.pl> wrote:
: 
: 'in parameters cannot be modified inside function'(sth like this),

This helps you abide by a principle called query command separation:

: procedure Set(this: in out rec1; s: Integer) is

this is the command, and the Get function is the query.
the principle says that queries should never modify the object.
Commands do in general modify the object.

(You can still implement a query using a procedure that has
an out parameter.)


-- Georg



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: newbie - OOP in Ada Set and Get Methods
  2004-12-28 17:36       ` R
                           ` (3 preceding siblings ...)
  2004-12-28 21:17         ` Martin Dowie
@ 2004-12-29 19:11         ` Martin Krischik
  4 siblings, 0 replies; 18+ messages in thread
From: Martin Krischik @ 2004-12-29 19:11 UTC (permalink / raw)


R wrote:

> because all OOP languages uses references to pass the objects as
> parameters...

Ada automaticly uses references when they are needed. Read

Programming:Ada:OO#Primitive_operations

I mean the "note for C++ programmers".

Martin

-- 
mailto://krischik@users.sourceforge.net
http://www.ada.krischik.com



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: newbie - OOP in Ada Set and Get Methods
  2004-12-29 10:06           ` R
  2004-12-29 12:33             ` Martin Dowie
  2004-12-29 17:35             ` Georg Bauhaus
@ 2004-12-29 19:12             ` Martin Krischik
  2004-12-30 12:14               ` Georg Bauhaus
  2 siblings, 1 reply; 18+ messages in thread
From: Martin Krischik @ 2004-12-29 19:12 UTC (permalink / raw)


R wrote:

> my compiler gnatmake Linux
> gave me warnings in this function:
> 
> function Set(this: rec1; s: Integer) return Integer is
> begin
> this.field := s;
> return s;
> end Set;
> 
> 'in parameters cannot be modified inside function'(sth like this),
> when I was using rec1_Typeas an access to rec1
> this warning never occured

Declare it "in out" if you want to make changes:

function Set(this: in out rec1; s: Integer) return Integer is


> but finally i changed it to:
> procedure Set(this: in out rec1; s: Integer) is
> begin
> this.field := s;
> end Set;
> and now it works fine - no warning
> 
> best regards R

Martin

-- 
mailto://krischik@users.sourceforge.net
http://www.ada.krischik.com



^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: newbie - OOP in Ada Set and Get Methods
  2004-12-29 19:12             ` Martin Krischik
@ 2004-12-30 12:14               ` Georg Bauhaus
  0 siblings, 0 replies; 18+ messages in thread
From: Georg Bauhaus @ 2004-12-30 12:14 UTC (permalink / raw)


Martin Krischik <martin@krischik.com> wrote:
: R wrote:
:> 
:> function Set(this: rec1; s: Integer) return Integer is
:> 
:> 'in parameters cannot be modified inside function'(sth like this),
 
: Declare it "in out" if you want to make changes:
 
: function Set(this: in out rec1; s: Integer) return Integer is
 
I'm sure this is an oversight as functions cannot have in out
parameters, which is what the compiler said.




^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2004-12-30 12:14 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-12-28 12:41 newbie - OOP in Ada Set and Get Methods R
2004-12-28 13:36 ` Jeff C r e e.m
2004-12-28 16:26   ` R
2004-12-28 17:01     ` Jeff C r e e.m
2004-12-28 17:30       ` R
2004-12-28 17:20     ` Martin Dowie
2004-12-28 17:36       ` R
2004-12-28 19:47         ` Mark Lorenzen
2004-12-28 19:48         ` Adrien Plisson
2004-12-28 19:58         ` Georg Bauhaus
2004-12-28 21:17         ` Martin Dowie
2004-12-29 10:06           ` R
2004-12-29 12:33             ` Martin Dowie
2004-12-29 17:35             ` Georg Bauhaus
2004-12-29 19:12             ` Martin Krischik
2004-12-30 12:14               ` Georg Bauhaus
2004-12-29 19:11         ` Martin Krischik
2004-12-28 13:39 ` Martin Krischik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox