Newsgroups: fj.lang.c,fj.lang.c++
Path: galaxy.trc.rwcp.or.jp!coconuts.jaist!wnoc-tyo-news!infoweb-news!news.tokyo.infoweb.or.jp!fgwnews!fdmnews!flabnews!kiko!news
From: tamy@flab.fujitsu.co.jp (Yutaka Tamiya)
Subject: Re: Maximal use of "const" in function declarations ?
Message-ID: <ywnsp6htnah.fsf@azusa.proc.flab.fujitsu.co.jp>
Date: Mon, 11 Nov 1996 01:48:06 GMT
Organization: Fujitsu Laboratories Ltd., Kawasaki, Japan
Sender: tamy@azusa.proc.flab.fujitsu.co.jp
X-Nntp-Posting-Host: azusa
In-Reply-To: kono@ie.u-ryukyu.ac.jp's message of 8 Nov 1996 15:30:44 GMT
References: <KATE.96Nov8183904@yamato.trad.pfu.co.jp>
	<20661.847466983@rananim.ie.u-ryukyu.ac.jp>
X-Newsreader: Gnus v5.0.12
Lines: 78
Xref: galaxy.trc.rwcp.or.jp fj.lang.c:3092 fj.lang.c++:186
X-originally-archived-at: http://galaxy.rwcp.or.jp/text/cgi-bin/newsarticle2?ng=fj.lang.c&nb=3092&hd=a
X-reformat-date: Mon, 18 Oct 2004 15:18:22 +0900
X-reformat-comment: Tabs were expanded into 4 column tabstops by the Galaxy's archiver. See http://katsu.watanabe.name/ancientfj/galaxy-format.html for more info.

$BED5\!wIY;NDL8&$G$9!#(B

> $B2OLn(B $B??<#(B@$BN05eBg>pJs9)3X$G$9!#(B
> In article <KATE.96Nov8183904@yamato.trad.pfu.co.jp> , 
> kate@pfu.co.jp (KATAYAMA Yoshio) writes 
> >>ANSI-C $B$H(B C++ $B$G4X?t@k8@$K!V(B const $B$r=PMh$k$@$1B?$/F~$l$k!W$3$H$,Bg@Z(B
> >$B$=$&$$$&$b$s$G$b$J$$$H$$$&5$$O$7$^$9$,!"!"!"(B
> $BKM$b!"$=$l$O4V0c$C$?G'<1$@$H;W$$$^$9!#$G$b!"$$$C$?$$$I$&$$$&;~$K(B

$B?'!9$H$4JVEz$"$j$,$H$&$4$6$$$^$9!#;d$OIaCJ$O(B C++ $B$K$I$C$W$j$D$+$C$F$$(B
$B$k$N$G!"4X?t@k8@$K!V(B const $B$r=PMh$k$@$1B?$/F~$l!W$?$$$N$G$9!#$G$b!"$3(B
$B$NG'<1$O(B ANSI-C $B$K$O$=$0$o$J$$$HDK46$7$F$*$j$^$9!#(B
$B!t$D$$$G$K(B C++ $B%3%s%Q%$%i$K$bN"@Z$i$l$F%7%g%C%/$G$9!#(B

$B;d$,(B const $B$N;H$$J}$,$I$&$7$F$bJ,$+$i$J$+$C$?;~(B
 Carroll, Ellis, "Designing and Coding Reusable C++ ($B%"%9%-!<(B
$B$+$iK.Lu$,=P$F$$$^$9(B)" 
$B$K=P2q$$!"(B
const $B$O(B bit $B%$%a!<%8E*$G$O$J$/!"0UL#E*$KB*$($F!"!VDj?t!W$G$"(B
$B$k$H$3$m$KIU$1$k!#%i%$%V%i%j@=:n<T$O(B const $B$O=PMh$k$@$1B?$/;H(B
$B$&!#(B 

$B$H@bL@$7$F$"$j!";d$OL\$+$iNZ$,Mn$A$^$7$?!#(B

$B!t0J2<$O(B C++ $B$N%3!<%I$K$J$j$^$9$,!"(Bfj.lang.c $B$NJ}$K$O$4MF<O4j$$$^$9!#(B

$BNc$($P!"(B2$B<!85:BI8>e$ND>@~(B (x0,y0,x1,y1) $B$rJ];}$9$k%/%i%9(B Line $B$K$*$$$F!"(B
$BD9$5$rJV$9(BLine::GetLength() $B$,Kh2s7W;;$9$k<j4V$r>J$/$?$a$KD9$5$r%-%c%C(B
$B%7%e$9$kNc$,$"$j$^$9!#(B

class Line {
private:
intvalid;
double x0, y0, x1, y1;
double len;
public:
....
double GetLength(void) const {
if (valid) return len;
else {
valid = 1;
return (len = hypot(x1-x0, y1-y0));
}
}
....
};

GetLength() $B$OD9$5$r7W;;$7$FJV$9$@$1$G!"(B x0, x1, y0, y1 $B$OJQ99$7$J$$$N(B
$B$G!"!V0UL#E*!W$K(B const $B$G$9!#$h$C$F!"(B GetLength() $B$O(B $B!V(Bconst $B%a%s%P4X(B
$B?t!W$G@k8@$7$^$9!#(BGetLength() $B$r8F$V$3$H$K$h$C$F!"(Bvalid $B$H(B len $B$,=q$-(B
$BJQ$o$k$1$I!"0UL#E*$K(B const $B$G$9!#$b$7$b(B valid $B$H(B len $B$r;H$o$J$/$FKh2s(B
$B7W;;$9$k$J$i$P!"J86g$J$/(B const $B%a%s%P4X?t$G$9!#(B

double GetLength(void) const {return hypot(x1-x0, y1-y0);}

$B%i%$%V%i%j$r;H$&%f!<%6$NCf$G!"(B

$B!VD9$5$rF@$k$@$1$GFbMF$,JQ$o$i$J$$(B GetLength() $B$,(B const $B$G$J$$$N$O$*$+(B
$B$7$$!W(B

$B$H9M$($k?M$b$$$k$G$7$g$&!#(B

$B%i%$%V%i%j$N%$%s%W%j%a%s%F!<%7%g%s$r!":G=i(B len $B$r;H$o$J$$%P!<%8%g%s$G!"(B
$B8e$G8zN(2=$N$?$a(B len $B$r;H$&$h$&$KJQ$($?>l9g!"%$%s%?!<%U%'!<%9$,JQ$o$C(B
$B$F$7$^$$(B (const $B%a%s%P4X?t$G$J$/$J$C$F$7$^$&(B)$B!"%f!<%6$O:.Mp$9$k$G$7$g(B
$B$&!#(B

$B$H$$$&$o$1$G!"$=$NK\$G$O!"(B const $B$O!V0UL#E*$K!WB*$($k$Y$-$@$H=q$$$FM-(B
$B$j$^$9!#(B

$B$J$*!"?7$7$$(B C++ $B$J$i$P!"%a%s%PJQ?t(B valid $B$H(B len $B$O(B mutable $B%-!<%o!<%I(B
$B$rIU$1$F@k8@$7!"(B const $B@-$NH=Dj$NBP>]30$G$"$k$3$H$rL@<($7$?$[$&$,NI$$(B
$B$G$9!#(B
-- 
--------
$B%A%'%mCF$-$N(B tamy@flab.fujitsu.co.jp /$B$U8&(B/CAD$B8&(B/$BED5\(B  $BK-(B
Tel: 044-754-2663, Fax: 044-754-2664
            
