C++中値転送、参照転送、ポインタ転送
7538 ワード
#include
<
iostream
>
using
namespace
std;
class
tr{
private
:
int
i;
public
:
tr(
int
n)
{
i
=
n;
}
void
set
(
int
n)
{
i
=
n;
}
int
get
()
{
return
i;
}
};
//
#if
1
void
sqr(tr
&
ob)
{
ob.
set
(ob.
get
()
*
ob.
get
());
cout
<<
"
ob.i=
"
<<
ob.
get
()
<<
endl;
}
#endif
//
#if
0
void
sqr(tr ob)
{
ob.
set
(ob.
get
()
*
ob.
get
());
cout
<<
"
ob.i=
"
<<
ob.
get
()
<<
endl;
}
#endif
//
#if
0
#define
POINT
void
sqr(tr
*
ob)
{
ob
->
set
(ob
->
get
()
*
ob
->
get
());
cout
<<
"
ob.i=
"
<<
ob
->
get
()
<<
endl;
}
#endif
int
main()
{
tr obj(
10
);
//
,
#ifdef POINT
sqr(
&
obj);
#else
sqr(obj);
#endif
cout
<<
"
obj.i=
"
<<
obj.
get
()
<<
endl;
return
0
;
}